{
  "format": "rh-briefing-file",
  "schemaVersion": 1,
  "draft": {
    "schemaVersion": 1,
    "documentType": "rh-briefing",
    "mode": "app",
    "exampleId": "cuaderno-app",
    "common": {
      "purpose": [
        {
          "id": "name",
          "label": "Nombre de trabajo",
          "value": "Cuaderno de decisiones",
          "status": "decidido",
          "unknown": false
        },
        {
          "id": "purpose",
          "label": "Propósito",
          "value": "Recuperar qué se decidió en un proyecto, por qué y qué cuestiones siguen abiertas, sin reconstruir notas dispersas.",
          "status": "decidido",
          "unknown": false
        },
        {
          "id": "audience",
          "label": "Usuario",
          "value": "Una persona que dirige o construye un proyecto pequeño y quiere mantener su registro en este navegador.",
          "status": "decidido",
          "unknown": false
        },
        {
          "id": "action",
          "label": "Tarea principal",
          "value": "Crear un proyecto, registrar una decisión con motivo, corregir su estado y exportar el conjunto.",
          "status": "decidido",
          "unknown": false
        }
      ],
      "materials": [],
      "constraints": [],
      "scope": [
        {
          "id": "in",
          "label": "Dentro",
          "value": "Crear/editar proyectos y decisiones, guardado local, estados, búsqueda, exportación/reimportación y recorridos de error.",
          "status": "decidido",
          "unknown": false
        },
        {
          "id": "out",
          "label": "Fuera",
          "value": "Edición simultánea, notificaciones, adjuntos, aplicaciones móviles nativas, facturación y usuarios compartidos.",
          "status": "decidido",
          "unknown": false
        },
        {
          "id": "open",
          "label": "Por resolver",
          "value": "Confirmar longitud habitual de registros y si la exportación elegida cubre la tarea real. No hay investigación humana ejecutada.",
          "status": "pendiente",
          "unknown": false
        },
        {
          "id": "date",
          "label": "Fecha",
          "value": "Sin plazo contractual; estimar cuando el recorrido y los estados estén acordados.",
          "status": "pendiente",
          "unknown": false
        },
        {
          "id": "budget",
          "label": "Presupuesto",
          "value": "Pendiente de propuesta sobre este alcance. No se deduce de un número de pantallas.",
          "status": "pendiente",
          "unknown": false
        }
      ],
      "acceptance": [
        {
          "id": "accept-roundtrip",
          "label": "Continuidad",
          "value": "Crear dos decisiones, guardar, recargar y reabrir con igualdad de contenido y estado; exportar e importar en sesión vacía.",
          "status": "decidido",
          "unknown": false
        },
        {
          "id": "accept-invalid",
          "label": "Datos inválidos",
          "value": "Título vacío/excesivo e importación corrupta muestran error; el estado válido anterior permanece.",
          "status": "decidido",
          "unknown": false
        },
        {
          "id": "accept-storage",
          "label": "Almacenamiento no disponible",
          "value": "Se informa del fallo y sigue disponible la exportación en la sesión actual.",
          "status": "decidido",
          "unknown": false
        },
        {
          "id": "accept-access",
          "label": "Accesibilidad",
          "value": "Crear/editar/filtrar/exportar con teclado, etiquetas y foco visible en móvil y escritorio.",
          "status": "decidido",
          "unknown": false
        },
        {
          "id": "accept-privacy",
          "label": "Privacidad",
          "value": "No se envía texto de decisiones ni identificadores personales; ninguna analítica en entorno de QA.",
          "status": "decidido",
          "unknown": false
        }
      ],
      "next": [
        {
          "id": "next",
          "label": "Aprender sin fingir validación",
          "value": "Probar técnicamente el recorrido con datos ficticios. Una prueba con personas reales se documentará y autorizará por separado.",
          "status": "decidido",
          "unknown": false
        },
        {
          "id": "next-scope",
          "label": "Ampliar con razón",
          "value": "Si hace falta trabajar en equipo, definir roles, conflictos y continuidad antes de añadir un botón de invitar.",
          "status": "decidido",
          "unknown": false
        }
      ]
    },
    "modes": {
      "web": {
        "pages": [],
        "functions": []
      },
      "app": {
        "screens": [
          {
            "id": "screen-list",
            "label": "Lista de proyectos",
            "value": "Muestra proyectos guardados y permite crear/abrir. Vacío explica la primera acción sin datos de ejemplo preinsertados.",
            "status": "decidido",
            "unknown": false
          },
          {
            "id": "screen-project",
            "label": "Detalle de proyecto",
            "value": "Nombre, propósito y decisiones. Crear, editar y eliminar con recuperación/confirmación proporcionada; ordenar por estado o fecha local.",
            "status": "decidido",
            "unknown": false
          },
          {
            "id": "screen-decision",
            "label": "Editar decisión",
            "value": "Título, descripción, alternativas, motivo y estado pendiente/decidida/revisar. No guardar si el título solo tiene espacios.",
            "status": "decidido",
            "unknown": false
          },
          {
            "id": "screen-export",
            "label": "Exportar y recuperar",
            "value": "Vista previa del JSON/Markdown; exportación completa y reimportación del esquema validado.",
            "status": "decidido",
            "unknown": false
          },
          {
            "id": "screen-error",
            "label": "Errores",
            "value": "Borrador corrupto, versión incompatible, falta de almacenamiento y lista vacía; conservar datos existentes y ofrecer salida comprensible.",
            "status": "decidido",
            "unknown": false
          }
        ],
        "data": [
          {
            "id": "data-project",
            "label": "Proyecto",
            "value": "Identificador local, nombre, propósito, fecha de creación local y decisiones. Sin dirección, contacto, documentos confidenciales ni usuarios reales.",
            "status": "decidido",
            "unknown": false
          },
          {
            "id": "data-decision",
            "label": "Decisión",
            "value": "Identificador, título, descripción, alternativas, motivo, estado y fecha de modificación.",
            "status": "decidido",
            "unknown": false
          },
          {
            "id": "rule-state",
            "label": "Estados",
            "value": "Pendiente conserva pregunta abierta; decidida exige motivo; revisar indica que una nueva condición obliga a volver sobre ella.",
            "status": "decidido",
            "unknown": false
          },
          {
            "id": "rule-delete",
            "label": "Eliminación",
            "value": "La persona decide qué registro borra. Confirmación proporcionada o deshacer; exportación previa disponible.",
            "status": "decidido",
            "unknown": false
          },
          {
            "id": "rule-validity",
            "label": "Importación",
            "value": "Validar versión, tipos, tamaños e identificadores; un archivo incorrecto no reemplaza silenciosamente el estado válido.",
            "status": "decidido",
            "unknown": false
          }
        ],
        "roles": [
          {
            "id": "roles",
            "label": "Roles",
            "value": "Un usuario local. No hay cuentas, organizaciones, permisos multiusuario ni inicio de sesión en primera versión.",
            "status": "decidido",
            "unknown": false
          },
          {
            "id": "storage",
            "label": "Guardado",
            "value": "Guardar en el navegador por acción explícita, con aviso de que no equivale a una copia en otro dispositivo.",
            "status": "decidido",
            "unknown": false
          },
          {
            "id": "backup",
            "label": "Continuidad",
            "value": "Exportar archivo y recuperarlo en una nueva sesión. La persona decide dónde conservar su copia.",
            "status": "decidido",
            "unknown": false
          },
          {
            "id": "sync",
            "label": "Sincronización",
            "value": "Fuera de la primera versión. Una futura sincronización requeriría identidad, permisos, conflictos, retención y presupuesto propios.",
            "status": "decidido",
            "unknown": false
          }
        ],
        "functions": [
          {
            "id": "function-main",
            "label": "Recorrido mínimo",
            "value": "Crear proyecto → añadir decisión → cambiar estado → guardar → recargar → abrir → exportar → importar sin perder contenido.",
            "status": "decidido",
            "unknown": false
          },
          {
            "id": "function-filter",
            "label": "Encontrar",
            "value": "Filtrar por estado y buscar en título; conservar lista vacía entendible si no hay coincidencias.",
            "status": "decidido",
            "unknown": false
          },
          {
            "id": "integrations",
            "label": "Integraciones",
            "value": "Ninguna en la primera versión. No enviar contenido a IA ni proveedores.",
            "status": "decidido",
            "unknown": false
          },
          {
            "id": "payments",
            "label": "Pagos",
            "value": "No hay suscripción, cobro ni plan comercial. El ejercicio no se presenta como SaaS operativo.",
            "status": "decidido",
            "unknown": false
          }
        ]
      }
    },
    "signals": {
      "web": {
        "submission": "unknown",
        "account": "unknown",
        "payments": "unknown"
      },
      "app": {
        "submission": "unknown",
        "account": "unknown",
        "payments": "unknown"
      }
    }
  },
  "license": "CC-BY-4.0",
  "attribution": "Ricardo Huertas"
}