La carpeta de datos (en el mundo de Markdown también llamada “vault”) es la carpeta en la que TandemLoop guarda todos tus datos. Se compone solo de archivos de texto normales, Markdown con encabezados YAML, y está donde la elijas al configurar la app: en local o en iCloud Drive. Así la pueden leer otras herramientas, los agentes de IA y, por supuesto, tú mismo con cualquier editor de texto.
Estructura de carpetas
{carpeta de datos}/
AGENTS.md ← Instrucciones para agentes de IA
_inbox/ ← Tareas de la captura rápida (Bandeja de entrada GTD)
bereiche/ ← Tus áreas (una subcarpeta cada una)
{área}/
area_{slug}.md ← Metadatos del área
_projects/ ← Proyectos del área
_singles/ ← Tareas independientes directamente en el área
_folders/ ← Carpetas opcionales
{carpeta}/
fld_{slug}.md ← Metadatos de la carpeta
_projects/
_singles/
_config/ ← Configuración (etiquetas, atributos, temas, presentación, idioma)
tags.yaml
attributes/ ← Atributos propios (un archivo por atributo)
{clave}.yaml
themes/ ← Temas (un archivo por tema)
{clave}.yaml
agent.yaml ← Último ciclo de tu agente de IA (lo escribe el agente)
language.yaml ← Idioma de la carpeta de datos
_views/ ← Vistas guardadas (también en subcarpetas)
vw_{slug}.yaml
_proposals/ ← Propuestas de la IA
prop_{slug}.md
_archive/ ← Entidades archivadas (no editar a mano)
_conflicts/ ← Copias de conflictos de iCloud guardadas
_system/ ← Esquema y documentos de referencia generados
Los directorios con el prefijo _ son carpetas del
sistema y los gestiona la app.
ID de entidades y prefijos de archivo
Cada entidad lleva en el campo id de su frontmatter un
ID estable basado en UUID. El nombre del archivo es independiente de él
y sigue un slug legible. Solo las vistas, las carpetas de vistas
(vf_…) y las propuestas llevan su slug en el ID. Los
archivos antiguos pueden tener todavía ID de tipo slug (por ejemplo,
area_arbeit).
| Entidad | Prefijo | ID de ejemplo | Nombre de archivo de ejemplo |
|---|---|---|---|
| Tarea | tsk_ |
tsk_f66f123ebac0402f… |
tsk_logo-entwerfen.md |
| Proyecto | prj_ |
prj_03ebb2b6286f4a9f… |
prj_website-relaunch.md |
| Área | area_ |
area_4f8e2d1c0b9a4e… |
area_arbeit.md |
| Carpeta | fld_ |
fld_a1b2c3d4e5f647… |
fld_clientes.md |
| Hito | ms_ |
ms_9fd12a6f440a4c… |
ms_sprint-1.md |
| Etiqueta | tag_ |
tag_a1b2c3d4e5f647… |
(en _config/tags.yaml) |
| Vista | vw_ |
vw_signal-tasks |
vw_signal-tasks.yaml |
| Propuesta | prop_ |
prop_inbox-aufraeumen |
prop_inbox-aufraeumen.md |
| Atributo | attr_ |
attr_3f2e9a0b4c5d… |
_config/attributes/cliente.yaml |
| Tema | thm_ |
thm_7c1d0e9f2a4b… |
_config/themes/nordlicht.yaml |
El contrato de datos
El formato de archivo sigue tres principios:
Lectura tolerante: La app lee los archivos aunque falten campos, contengan valores de estado desconocidos o procedan de versiones anteriores. Así, un elemento editado a mano o creado por un agente de IA no bloquea toda la app.
Escritura estable: Al actualizar un archivo, la app
conserva el orden de los campos existentes y la información que ya
contiene. Los campos desconocidos que haya añadido un editor externo se
mantienen. Los campos incorporados más tarde, como un aviso
(remind_at), la app los añade al final del frontmatter; los
campos vacíos aparecen como null, y solo algunos, como
remind_at y repeat:, faltan por completo
mientras no tengan valor.
Legible por máquinas: Como se trata de archivos Markdown en texto plano, los agentes de IA y otras herramientas pueden leer la carpeta de datos directamente. Qué cambios pueden hacer directamente lo explica el capítulo Colaborar con agentes de IA.
Atributos propios
Los atributos propios (en los ajustes, en Atributos)
amplían las tareas, proyectos e hitos con campos adicionales. Cada
atributo es un pequeño archivo YAML en _config/attributes/;
el nombre del archivo es la clave del atributo:
key: cliente
name: Cliente
type: select
applies_to:
- task
- project
options:
- ACME
- Contoso
description: Para qué cliente se realiza el trabajo.Los valores se guardan en el frontmatter del archivo correspondiente,
en attributes::
attributes:
cliente: ACME
presupuesto: 12000
entrega: '2026-11-30'- Tipos:
text,number(número),date('AAAA-MM-DD'),boolean(Sí/No),select(una de las opciones),url(enlace). - Las claves constan de minúsculas, dígitos y guiones
bajos, y no pueden coincidir con un campo integrado como
statusodue_date. Una clave no se puede cambiar después. - Los campos vacíos no se guardan. Eliminar un atributo no borra sus valores: se quedan en los archivos y aparecen en el Inspector como una fila de solo lectura.
- En las vistas, los atributos están disponibles como campos
attributes.clavepara filtrar, ordenar y agrupar.
Los agentes de IA pueden crear atributos ellos
mismos: Si le pides a un agente, por ejemplo, “Crea un atributo
Presupuesto para proyectos”, escribe un archivo en
_config/attributes/. La app lo detecta al instante y
muestra el campo nuevo.
Tareas recurrentes
La regla de repetición está en el frontmatter de la tarea, en
repeat:; por ejemplo, cada lunes:
repeat:
unit: week
days: [mon]unit es day, weekday,
week, month o year; además, de
forma opcional, every (intervalo), day o bien
nth + weekday (reglas mensuales),
from: completion (a partir de completarla) y
until o count como final. Las claves
series, occurrence y next las
gestiona la propia app. La referencia completa para agentes está en
_system/docs/data-model.md.
Temas
Cada tema es un archivo YAML en _config/themes/; el
nombre del archivo sin extensión es su clave
(nordlicht.yaml → nordlicht). Un tema solo
indica los colores que difieren de los estándar:
name: Nordlicht
description: Petróleo frío con superficies oscuras.
appearance: system # system, light o dark
font_design: rounded # default, rounded, serif o monospaced
colors:
primary:
light: "#0F766E"
dark: "#2DD4BF"
danger: "#E5484D" # un valor vale para claro y oscuroLos colores se escriben como valor hexadecimal entre comillas, y con
opacidad como #RRGGBBAA. Qué claves de color existen,
cuáles se derivan de otras y qué valores predeterminados se aplican está
en _system/docs/themes.md; TandemLoop mantiene esta
referencia para que los agentes de IA puedan diseñar temas adecuados.
Cada dispositivo guarda por su cuenta qué tema está activo; los archivos
de tema se sincronizan con la carpeta de datos.
El bloque de relaciones
Cada archivo de tarea, proyecto, hito y carpeta (salvo las tareas de la Bandeja de entrada) contiene al final del cuerpo una breve sección legible por máquinas que guarda los vínculos con los elementos padre como enlaces Markdown relativos; aquí, para una tarea del proyecto “Website Relaunch”:
<!-- tandemloop:relations:start -->
[Bereich: Arbeit](../../../area_arbeit.md) · [Projekt: Website Relaunch](../prj_website-relaunch.md)
<!-- tandemloop:relations:end -->
La app mantiene este bloque actualizado automáticamente y no hace falta editarlo a mano; los agentes de IA lo omiten en los archivos nuevos y lo quitan al mover un elemento. Permite que las herramientas y los agentes entiendan la jerarquía también sin el índice en memoria de la app.
Idioma de la carpeta de datos
Los pocos textos que TandemLoop escribe por sí mismo en los archivos
(los rótulos del bloque de relaciones (Bereich: /
Area:…), los encabezados del historial de una tarea
(## Du — 21.3.2026 / ## You — 2026-03-21), las
secciones de una propuesta (## Diskussion /
## Discussion) y las instrucciones para agentes de IA
(AGENTS.md, _system/docs/)) siguen el
idioma de la carpeta de datos. Se indica en
_config/language.yaml:
language: enLas carpetas de datos nuevas están en inglés; las carpetas sin este archivo (de versiones anteriores) siguen en alemán. El idioma de la carpeta de datos no depende del idioma del dispositivo: así todos los dispositivos escriben los mismos archivos. Al leer, TandemLoop reconoce ambas variantes.
Editar directamente en la carpeta de datos, con
cuidado. Puedes abrir los archivos con cualquier editor de
texto. Ten en cuenta lo siguiente: los ID no se deben cambiar nunca; las
fechas van entre comillas simples en el frontmatter de los archivos
Markdown ('2026-03-14T09:30:00') y sin comillas en los
archivos de vistas y de configuración (_views/,
_config/); la carpeta _archive/ no debe
editarse a mano. Para los cambios de estructura (mover proyectos,
renombrar etiquetas), es mejor usar la app o el mecanismo de propuestas;
si no, el índice interno puede quedar incoherente.
Varios dispositivos: sincronización mediante iCloud Drive
TandemLoop no tiene servidor propio y no envía datos a internet por su cuenta. Como tu carpeta de datos es una carpeta normal, la usas en varios dispositivos poniéndola en iCloud Drive. iCloud mantiene los archivos al día entre el Mac, el iPad y el iPhone; TandemLoop lee la misma carpeta en cada dispositivo y descarga de iCloud los archivos que falten cuando los necesita.
Ajustes › Carpeta de datos › Cambiar carpeta de datos… › elige un directorio en iCloud Drive
No escribas en dos dispositivos a la vez. Los servicios en la nube sincronizan archivo por archivo y no conocen la estructura interna de tu carpeta de datos. Por eso, edita tus datos en un solo dispositivo a la vez siempre que puedas y espera a que termine la sincronización antes de usar el siguiente; si no, pueden surgir copias en conflicto de algunos archivos. Lo mismo ocurre si una herramienta de IA accede a la vez a la misma carpeta de datos en la nube.
La sincronización no sustituye a una copia de seguridad. Una sincronización en la nube también replica las eliminaciones en todos los dispositivos. Para tener copias de seguridad de verdad, usa además, por ejemplo, Time Machine o el historial de versiones de tu servicio en la nube.