N Necesitas · Documentación
Abrir app

Documentación

Necesitas documenta procesos paso a paso: qué necesitas antes de ejecutar cada paso. No ejecuta nada — solo claridad humana. Versión actual: v1.0.31.

Ver tutoriales con capturas

Conceptos

ConceptoDescripción
ProcesoDocumento con uno o más flujos. Se guarda en el navegador o como archivo .json.
FlujoSecuencia de nodos: inicio → pasos → fin. Puede anidar sub-flujos.
PasoNodo con requisitos, entradas, salidas y opcionalmente HTTP/API.
Sub-flujoPaso que abre otro flujo interno (doble clic o botón abrir).
DocumentaciónNodo tipo info: texto libre y tablas de estructuras.
RequisitoLo que necesitas antes del paso: boleto, token, ingrediente, permiso…
ChecklistVista «¿Qué necesito?» — pestaña Preparación agrupa credenciales BD/FTP/API, aprobaciones y detecta accesos sin documentar; marca lo que ya tienes.
Capa de datosdataLayer del documento: bases de datos, tablas, relaciones FK y conexiones explícitas paso↔tabla.
CatálogoVersiones opcionales (ej. WP 6.7, dt 2.22) para filtrar requisitos por since/until.

Tipos de requisito (kind)

document · object · money · approval · ingredient · tool · knowledge · person · other

Uso de la app

  1. En el inicio: crea en blanco, usa una plantilla cotidiana o abre un demo (destacado: tienda online; técnicos: WordPress, PHP-CRUD-API, dtunnel).
  2. En el canvas: clic en un nodo para editar; + en una conexión para insertar pasos; doble clic en sub-flujo para abrirlo.
  3. Panel derecho (NDV): pestañas Necesitas / Paso / Obtienes; en Paso verás conexiones de datos del nodo seleccionado.
  4. Canvas: botón cable en cada paso para enlazar BD/API/FTP; banda inferior «Recursos conectados»; botón database en la barra flotante para añadir recursos.
  5. Barra del editor: ¿Qué necesito? (checklist con pestaña Preparación: credenciales, aprobaciones y accesos pendientes), Datos, Diagramas.
  6. Canvas: rueda con Ctrl para zoom; Espacio + arrastrar para mover; botón fit_screen para encajar la vista.
  7. Exporta JSON para respaldar; importa para recuperar o cargar un flujo generado por IA.
Los datos viven en localStorage del navegador. Exporta con frecuencia si cambias de equipo.

Checklist de preparación

El botón ¿Qué necesito? abre un modal con dos pestañas. La vista por defecto es Preparación: te dice qué te falta antes de ejecutar el proceso, agrupado por tipo.

Checklist Preparación con grupos de credenciales, aprobaciones y barra de progreso
Pestaña Preparación: barra de progreso, filtro «Solo pendientes» y grupos por tipo de requisito.
GrupoQué incluye
Acceso y credencialesAPI keys, tokens, usuario/contraseña de BD, FTP o SFTP. Los ítems con badge Por documentar se infieren del panel Datos (MySQL, Redis, Stripe…) pero aún no están en la pestaña Necesitas de ningún paso.
Aprobaciones y permisosRequisitos con kind: approval — validación de otra persona o área (marketing, antifraude, permisos de escritura…).
Documentos e identidadDNI, tokens, tarjetas, firmas webhook, emails… (kind: document).
PersonasQuién debe estar disponible (kind: person).
Herramientas y entornoSoftware, hardware, conexión (kind: tool).
Otros requisitosPagos, ingredientes, campos de formulario, datos de entrada…

Cómo usarlo

  1. Abre el proceso → ¿Qué necesito? → pestaña Preparación.
  2. Marca con ✓ cada ítem que ya tengas listo. El progreso se guarda por proceso en tu navegador.
  3. Activa Solo pendientes para ver únicamente lo que falta.
  4. Para quitar un aviso Por documentar, añade la credencial en Necesitas del paso que usa ese recurso (tipo database, api_key, basic_auth, etc.).
  5. La pestaña Lista completa muestra el detalle por paso, credenciales y tablas del dataLayer.
Guía visual paso a paso con capturas: Tutorial 6 — Checklist.

Importar y exportar

Validación mínima al importar: el JSON debe tener rootId y flows con al menos el flujo raíz.

Formato JSON

Esquema de nivel superior (version: 2):

{
  "version": 2,
  "rootId": "f_…",
  "catalog": {
    "versions": [{ "id": "2.0", "label": "v2.0", "summary": "…" }],
    "defaultView": "2.0",
    "defaultCompare": "1.0"
  },
  "dataLayer": {
    "databases": [{ "id": "db_1", "name": "mi_bd", "engine": "mysql", "tables": [] }],
    "connections": []
  },
  "diagrams": { "preferred": "flowchart", "custom": "" },
  "flows": {
    "f_…": { /* flujo raíz */ }
  }
}

Estructura de un flujo

{
  "id": "f_abc",
  "title": "Título del proceso",
  "nodes": {
    "n_start": { "id": "n_start", "kind": "start", "label": "Inicio" },
    "n_paso1": {
      "id": "n_paso1",
      "kind": "step",
      "type": "step",
      "label": "Nombre visible",
      "subflowId": null,
      "spec": { /* ver abajo */ }
    },
    "n_end": { "id": "n_end", "kind": "end", "label": "Fin" }
  },
  "edges": [
    { "id": "e1", "from": "n_start", "to": "n_paso1" },
    { "id": "e2", "from": "n_paso1", "to": "n_end" }
  ]
}

spec de un paso

{
  "description": "Texto explicativo del paso",
  "since": "2.0",
  "until": "",
  "versionNotes": { "2.0": "Nota al comparar versiones" },
  "http": { "method": "GET", "path": "/api/recurso" },
  "requirements": [
    { "name": "Token API", "kind": "document", "required": true, "note": "Bearer …", "since": "2.0", "until": "" }
  ],
  "credentials": [
    { "name": "Stripe API Key", "kind": "api_key", "required": true, "note": "Variable STRIPE_SECRET_KEY", "since": "", "until": "" }
  ],
  "inputs": [
    { "name": "id", "type": "number", "required": true, "example": "42", "since": "", "until": "", "validation": "" }
  ],
  "outputs": [
    { "name": "record", "type": "object", "required": true }
  ],
  "formFields": [
    { "name": "email", "type": "string", "required": true, "example": "user@ejemplo.com", "validation": "email" }
  ],
  "dataRefs": [
    { "databaseId": "db_1", "tableId": "tbl_users", "operation": "read" }
  ],
  "payloadIn": "{\"email\":\"…\"}",
  "payloadOut": ""
}

Nodo documentación (type: "info")

{
  "kind": "step",
  "type": "info",
  "label": "Arquitectura",
  "infoTitle": "Título del panel",
  "infoBody": "Texto multilínea…",
  "structures": [
    { "name": "/health", "since": "1.0", "fields": "status, uptime" }
  ]
}

Sub-flujo

Un paso con subflowId apunta a otro objeto en flows. Al generar JSON manualmente, crea dos entradas en flows y enlaza el id.

Alternativa recomendada para código: usar populateFlow() en un archivo demo-*.js (ver demos WordPress, dtunnel en el repo).

Reglas importantes

Bases de datos, estructuras y conexiones

Además de los flujos, el documento puede incluir una capa de datos (dataLayer) con bases de datos, tablas y enlaces explícitos entre pasos y tablas.

Panel Datos (tres pestañas)

El botón Datos en la barra del editor abre un modal con tres modos. Si el proceso tiene muchas tablas (p. ej. el demo WordPress), se abre por defecto en Mapa ER. Guía visual paso a paso: tutoriales con capturas.

PestañaPara qué sirve
Mapa ER Diagrama visual por recurso (selector Recurso). Zoom con Ctrl+rueda, Alt+arrastrar para mover. Las líneas FK se infieren del texto en Relaciones. Clic en una tabla filtra conexiones en el panel lateral; usa el filtro Flujo para acotar por sub-flujo.
Explorar Tarjetas por tabla (campos, PK, relaciones como chips navegables) y tarjetas de conexión con badge de operación. Clic en una tarjeta de tabla filtra las conexiones; los chips FK saltan a la tabla relacionada.
Editar Editor visual por tarjetas: chips de campos (clic = PK), constructor FK con selector de tabla destino, expandir/contraer cada tabla y botón Ver mapa ER. Conexiones paso↔tabla en la sección inferior.

Ir al paso en canvas

En las tarjetas de conexión (pestañas Mapa y Explorar), el botón Ir al paso en canvas cierra el modal, navega al sub-flujo correcto y selecciona el nodo enlazado. Útil en procesos con sub-flujos anidados (WordPress, tienda online).

Texto de relaciones (para el mapa ER)

El campo description de cada tabla (columna Relaciones en Editar) alimenta el mapa. Usa convenciones legibles; la app detecta destinos con estos patrones:

wp_posts     | FK post_author → wp_users.ID
wp_users     | 1:N wp_usermeta, wp_posts
wp_terms     | 1:N wp_term_taxonomy
wp_postmeta  | FK post_id → wp_posts.ID

Esquema JSON (dataLayer)

{
  "dataLayer": {
    "databases": [
      {
        "id": "db_main",
        "label": "MySQL producción",
        "engine": "mysql",
        "description": "Notas, host o DSN",
        "since": "1.0",
        "host": "localhost",
        "tables": [
          {
            "id": "tbl_users",
            "name": "users",
            "fields": "id, email, password_hash",
            "primaryKey": "id",
            "since": "1.0",
            "until": "",
            "description": "FK user_id → wp_users.ID"
          }
        ]
      }
    ],
    "connections": [
      {
        "id": "cx_login",
        "label": "Login valida usuario",
        "flowId": "f_root",
        "nodeId": "n_login",
        "nodeLabel": "Iniciar sesión",
        "databaseId": "db_main",
        "tableId": "tbl_users",
        "operation": "read",
        "fields": "email, password_hash",
        "since": "1.0",
        "note": ""
      }
    ]
  }
}

Motores (engine)

mysql · postgres · sqlite · mssql · mongodb · redis · api · ftp · sftp · s3 · other

Operaciones de conexión (operation)

read · write · update · delete · read_write

En la app

Demo WordPress

El demo técnico WordPress incluye 10 tablas core (wp_posts, wp_users, comentarios, taxonomías, meta…) con relaciones FK y 17+ conexiones cableadas a pasos en sub-flujos. Ábrelo → Datos → Mapa ER.

Los demos técnicos (WordPress, PHP-CRUD-API, dtunnel) y la tienda online ya incluyen dataLayer con tablas y conexiones reales del sistema.

Diagramas Mermaid

El botón Diagramas en el editor abre un visor modal con 13 tipos generados automáticamente desde tu proceso. Puedes copiar el código, pegarlo en documentación externa o editar el modo Libre con cualquier sintaxis Mermaid 11.

Las etiquetas con rutas HTTP, llaves ({sku}) o guiones largos se sanitizan al generar timeline, mindmap y classDiagram para evitar errores de sintaxis en Mermaid 11.

TipoSe genera desde
Flujo (flowchart)Nodos y aristas del flujo actual
SecuenciaPasos con HTTP/API como sequenceDiagram
ERdataLayer — bases de datos y tablas
EstadosCamino principal del flujo como stateDiagram
ClasesTablas y campos como classDiagram
JourneyPasos como user journey
MindmapFlujo raíz con sub-flujos anidados
TimelineHitos por versión (since)
PieRequisitos agrupados por kind
Arquitectura (block-beta)Cliente → API → BD del proceso
CuadranteMatriz esfuerzo/impacto de pasos
GitCatálogo de versiones como gitGraph
LibreTexto Mermaid editable (gantt, C4, etc.)

En el JSON

{
  "diagrams": {
    "preferred": "flowchart",
    "custom": "gantt\\n  title Mi roadmap\\n  section Fase 1\\n  Tarea A :a1, 2026-01-01, 30d"
  }
}

Generar flujos con Cursor

Pega este prompt en Cursor (o cualquier agente) junto con la documentación del sistema que quieres documentar. Pide que entregue un JSON importable o un archivo demo-mi-sistema.js.

Eres un asistente que documenta procesos para la app Necesitas (procesos.desarrollado.com).

OBJETIVO: Crear un flujo documentado sobre [DESCRIBE EL SISTEMA: ej. dtunnel, mi API REST, onboarding de usuarios].

REGLAS:
1. Cada paso debe listar requisitos (qué necesitas ANTES de ejecutarlo): documentos, herramientas, conocimiento, permisos.
2. Usa sub-flujos para agrupar fases (instalación, autenticación, operación diaria).
3. Incluye nodos info para arquitectura, límites o tablas de referencia.
4. Si hay versiones del producto, rellena catalog.versions y since/until en specs.
5. Para pasos HTTP: spec.http = { method, path } y formFields/inputs/outputs coherentes.
6. kinds de requisito: document, object, money, approval, ingredient, tool, knowledge, person, other.
7. Incluye dataLayer con databases (tablas/estructuras) y connections (paso↔tabla, operation: read|write|update|delete|read_write).
8. En cada tabla, usa description para relaciones FK (ej. "FK user_id → users.id" o "1:N orders") — alimentan el mapa ER de la app.

ENTREGA (elige una):
A) Archivo JSON válido con version:2, rootId, flows, dataLayer (importable en Necesitas).
B) Archivo js/demo-[nombre].js con función build[Nombre]Demo(doc) que llame doc.populateFlow(doc.rootId, [...]) siguiendo el patrón de js/demo-dtunnel.js en el repo procesos/web.

El JSON raíz debe verse así:
{ "version": 2, "rootId": "…", "catalog": {…}, "dataLayer": { "databases": [], "connections": [] }, "flows": {…} }

Ejemplo mínimo de paso en populateFlow:
{
  label: "Instalar CLI",
  spec: {
    description: "…",
    since: "2.0",
    requirements: [
      { name: "Node.js 18+", kind: "tool", required: true, note: "…" }
    ],
    http: { method: "GET", path: "https://…" },
    outputs: [{ name: "cli", type: "string", required: true, example: "…" }]
  }
}

Sub-flujo en populateFlow:
{
  label: "Fase autenticación",
  subflowMeta: { startLabel: "Sin sesión", endLabel: "Token listo" },
  subflow: [ { label: "Login", spec: { … } }, … ]
}

Documenta [NÚMERO] pasos principales. Título del proceso: "[TÍTULO]".

Flujo de trabajo sugerido

  1. Cursor genera mi-proceso.json o demo-mi-sistema.js.
  2. Si es JSON: en Necesitas → Importar → abrir y revisar checklist.
  3. Si es JS: añadir al repo, plantilla en demo-templates.js o botón en dashboard (como los demos técnicos).
  4. Itera: exporta, pide a Cursor que amplíe requisitos o añada versiones.
Referencia en código: js/model.js (populateFlow, importJSON), js/data-panel.js, js/data-schema-viz.js, js/demo-dtunnel.js.

Extensión VS Code / Cursor

Trabaja con archivos *.necesitas.json en tu repo: validación, snippets y apertura directa en la app web.

Instalación

  1. En el repo: carpeta procesos/extension/.
  2. Empaqueta: npx @vscode/vsce package → genera necesitas-0.2.0.vsix.
  3. En Cursor/VS Code: Extensions → Install from VSIX.
  4. O desarrollo: abre la carpeta extension y pulsa F5.

Comandos

ComandoDescripción
Validar procesoComprueba JSON, nodos, aristas y dataLayer
Abrir en procesos.desarrollado.comImporta vía ?import= (base64url)
Sincronizar con la webIgual que abrir; opcional al guardar (necesitas.syncOnSave)
Nuevo proceso desde plantillaCrea mi-proceso.necesitas.json mínimo
Copiar prompt para CursorPrompt de la sección anterior

Convención en el repo

docs/procesos/
  onboarding-api.necesitas.json
  deploy-produccion.necesitas.json

Versiona los JSON en git; usa la extensión para validar en CI o al guardar.

Novedades

VersiónCambios principales
1.0.31Respaldo en la nube: login con cuenta desarrollado, Subir/Bajar biblioteca; API /processes en dtunnel v2.50.
1.0.30Import desde URL (?import=) para la extensión VS Code/Cursor; sección Extensión IDE en docs.
1.0.29Diagramas Mermaid: zoom (+/−/ajustar), desplazamiento con Alt+arrastrar o botón Mover, y Ctrl+rueda para zoom.
1.0.28Documentación ampliada: sección Checklist de preparación, captura de la pestaña Preparación y tutorial actualizado.
1.0.27Corrección: botón ¿Qué necesito? fallaba por imports faltantes en el checklist de preparación.
1.0.26Checklist Preparación: agrupa por tipo (credenciales, aprobaciones, documentos…), detecta accesos BD/FTP/API sin documentar, barra de progreso y marcas guardadas por proceso.
1.0.25Página Tutoriales con 6 guías ilustradas (inicio, canvas, mapa ER, explorar, editor visual, checklist) y capturas en docs/img/.
1.0.24Editor visual de tablas en Datos → Editar: tarjetas expandibles, chips de campos, selector PK, constructor FK y enlace al mapa ER.
1.0.23Panel Datos completo: mapa ER multi-recurso, zoom/pan, filtro por sub-flujo, sync dataRefs↔conexiones; WordPress +2 tablas; tienda con FK.
1.0.22Panel Datos interactivo: mapa ER con FK, tarjetas de tablas, conexiones con «Ir al paso en canvas», pestañas Mapa / Explorar / Editar.
1.0.21Demo WordPress: 8 tablas core con relaciones FK, 14 conexiones paso↔tabla cableadas a sub-flujos, líneas en canvas desde contenedores padre.
1.0.19Coherencia canvas↔datos: conexiones en borrador, sección «Conexiones de datos» en el panel Paso, resumen con conteo, dataRefs en canvas, grids CSS corregidos.
1.0.18Nodos de recursos en el canvas (BD, API, FTP, SFTP, S3) con conexiones punteadas; botón cable en cada paso; atajos rápidos en Datos.
1.0.17Deduplicación de Mis procesos: plantillas y demos ya no se duplican al reabrir; limpieza automática de copias antiguas.
1.0.16Apartado Credenciales necesarias por paso; checklist y canvas actualizados.
1.0.15Corrección al añadir requisitos, salidas, entradas y formulario; padding del panel NDV.
1.0.13Diagramas Mermaid corregidos (timeline, mindmap, class); detección de errores fiable; limpieza de SVG huérfanos; mejor padding; canvas con ajuste automático (mín. 35%).
1.0.12Corrección del detector de errores SVG que bloqueaba diagramas válidos.
1.0.11Sanitización de etiquetas Mermaid y mejoras de zoom/padding.
1.0.10Primeras correcciones de sintaxis Mermaid y caja de error en el visor.
1.0.9Rediseño del dashboard, barra de herramientas del editor, panel NDV y modales centrados.
1.0.8Demo completo tienda online (sub-flujos, HTTP, dataLayer, Stripe, diagramas).
1.0.7Visor de diagramas con 13 tipos Mermaid + modo Libre editable.

La versión desplegada aparece en el pie del inicio (v…). Si no coincide, recarga con Ctrl+F5.

Ejemplos descargables

Archivos listos para importar en la app:

ejemplo-minimo.json — dos pasos cotidianos (hacer café). ejemplo-tecnico.json — API con catálogo de versiones y nodo info. ejemplo-tienda.json — ejemplo completo: sub-flujos, HTTP, dataLayer (MySQL+Redis+Stripe), catálogo, diagramas y todos los tipos de requisito.