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.
| Concepto | Descripción |
|---|---|
| Proceso | Documento con uno o más flujos. Se guarda en el navegador o como archivo .json. |
| Flujo | Secuencia de nodos: inicio → pasos → fin. Puede anidar sub-flujos. |
| Paso | Nodo con requisitos, entradas, salidas y opcionalmente HTTP/API. |
| Sub-flujo | Paso que abre otro flujo interno (doble clic o botón abrir). |
| Documentación | Nodo tipo info: texto libre y tablas de estructuras. |
| Requisito | Lo que necesitas antes del paso: boleto, token, ingrediente, permiso… |
| Checklist | Vista «¿Qué necesito?» — pestaña Preparación agrupa credenciales BD/FTP/API, aprobaciones y detecta accesos sin documentar; marca lo que ya tienes. |
| Capa de datos | dataLayer del documento: bases de datos, tablas, relaciones FK y conexiones explícitas paso↔tabla. |
| Catálogo | Versiones opcionales (ej. WP 6.7, dt 2.22) para filtrar requisitos por since/until. |
kind)document · object · money · approval · ingredient · tool · knowledge · person · other
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.
| Grupo | Qué incluye |
|---|---|
| Acceso y credenciales | API 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 permisos | Requisitos con kind: approval — validación de otra persona o área (marketing, antifraude, permisos de escritura…). |
| Documentos e identidad | DNI, tokens, tarjetas, firmas webhook, emails… (kind: document). |
| Personas | Quién debe estar disponible (kind: person). |
| Herramientas y entorno | Software, hardware, conexión (kind: tool). |
| Otros requisitos | Pagos, ingredientes, campos de formulario, datos de entrada… |
database, api_key, basic_auth, etc.).dataLayer.proceso-desarrollado.json..json válido (ver esquema abajo).Validación mínima al importar: el JSON debe tener rootId y flows con al menos el flujo raíz.
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 */ }
}
}
{
"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": ""
}
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" }
]
}
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).
start y uno end.edges forman la cadena principal (inicio → … → fin).id de nodos y flujos deben ser únicos en todo el documento.position en nodos es opcional; la app calcula layout si falta.since, until (strings, ej. "2.6").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.
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ña | Para 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. |
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).
El campo description de cada tabla (columna Relaciones en Editar) alimenta el mapa. Usa convenciones legibles; la app detecta destinos con estos patrones:
FK post_author → wp_users.ID — flecha hacia otra tabla1:N wp_usermeta — relación uno-a-muchos· o espaciowp_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
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": ""
}
]
}
}
engine)mysql · postgres · sqlite · mssql · mongodb · redis · api · ftp · sftp · s3 · other
operation)read · write · update · delete · read_write
structures — si no hay dataLayer, se migra automáticamente al abrir el proceso.spec.dataRefs puede referenciar tablas (alternativa ligera a connections). Se conserva al editar el paso; para gestión visual usa Datos.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.
dataLayer con tablas y conexiones reales del sistema.
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.
| Tipo | Se genera desde |
|---|---|
| Flujo (flowchart) | Nodos y aristas del flujo actual |
| Secuencia | Pasos con HTTP/API como sequenceDiagram |
| ER | dataLayer — bases de datos y tablas |
| Estados | Camino principal del flujo como stateDiagram |
| Clases | Tablas y campos como classDiagram |
| Journey | Pasos como user journey |
| Mindmap | Flujo raíz con sub-flujos anidados |
| Timeline | Hitos por versión (since) |
| Pie | Requisitos agrupados por kind |
| Arquitectura (block-beta) | Cliente → API → BD del proceso |
| Cuadrante | Matriz esfuerzo/impacto de pasos |
| Git | Catálogo de versiones como gitGraph |
| Libre | Texto Mermaid editable (gantt, C4, etc.) |
{
"diagrams": {
"preferred": "flowchart",
"custom": "gantt\\n title Mi roadmap\\n section Fase 1\\n Tarea A :a1, 2026-01-01, 30d"
}
}
preferred — última pestaña activa en el visor.custom — código Mermaid del modo Libre (se guarda al editar).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]".
mi-proceso.json o demo-mi-sistema.js.demo-templates.js o botón en dashboard (como los demos técnicos).js/model.js (populateFlow, importJSON), js/data-panel.js, js/data-schema-viz.js, js/demo-dtunnel.js.
Trabaja con archivos *.necesitas.json en tu repo: validación, snippets y apertura directa en la app web.
procesos/extension/.npx @vscode/vsce package → genera necesitas-0.2.0.vsix.| Comando | Descripción |
|---|---|
| Validar proceso | Comprueba JSON, nodos, aristas y dataLayer |
| Abrir en procesos.desarrollado.com | Importa vía ?import= (base64url) |
| Sincronizar con la web | Igual que abrir; opcional al guardar (necesitas.syncOnSave) |
| Nuevo proceso desde plantilla | Crea mi-proceso.necesitas.json mínimo |
| Copiar prompt para Cursor | Prompt de la sección anterior |
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.
| Versión | Cambios principales |
|---|---|
| 1.0.31 | Respaldo en la nube: login con cuenta desarrollado, Subir/Bajar biblioteca; API /processes en dtunnel v2.50. |
| 1.0.30 | Import desde URL (?import=) para la extensión VS Code/Cursor; sección Extensión IDE en docs. |
| 1.0.29 | Diagramas Mermaid: zoom (+/−/ajustar), desplazamiento con Alt+arrastrar o botón Mover, y Ctrl+rueda para zoom. |
| 1.0.28 | Documentación ampliada: sección Checklist de preparación, captura de la pestaña Preparación y tutorial actualizado. |
| 1.0.27 | Corrección: botón ¿Qué necesito? fallaba por imports faltantes en el checklist de preparación. |
| 1.0.26 | Checklist 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.25 | Página Tutoriales con 6 guías ilustradas (inicio, canvas, mapa ER, explorar, editor visual, checklist) y capturas en docs/img/. |
| 1.0.24 | Editor visual de tablas en Datos → Editar: tarjetas expandibles, chips de campos, selector PK, constructor FK y enlace al mapa ER. |
| 1.0.23 | Panel Datos completo: mapa ER multi-recurso, zoom/pan, filtro por sub-flujo, sync dataRefs↔conexiones; WordPress +2 tablas; tienda con FK. |
| 1.0.22 | Panel Datos interactivo: mapa ER con FK, tarjetas de tablas, conexiones con «Ir al paso en canvas», pestañas Mapa / Explorar / Editar. |
| 1.0.21 | Demo WordPress: 8 tablas core con relaciones FK, 14 conexiones paso↔tabla cableadas a sub-flujos, líneas en canvas desde contenedores padre. |
| 1.0.19 | Coherencia 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.18 | Nodos 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.17 | Deduplicación de Mis procesos: plantillas y demos ya no se duplican al reabrir; limpieza automática de copias antiguas. |
| 1.0.16 | Apartado Credenciales necesarias por paso; checklist y canvas actualizados. |
| 1.0.15 | Corrección al añadir requisitos, salidas, entradas y formulario; padding del panel NDV. |
| 1.0.13 | Diagramas 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.12 | Corrección del detector de errores SVG que bloqueaba diagramas válidos. |
| 1.0.11 | Sanitización de etiquetas Mermaid y mejoras de zoom/padding. |
| 1.0.10 | Primeras correcciones de sintaxis Mermaid y caja de error en el visor. |
| 1.0.9 | Rediseño del dashboard, barra de herramientas del editor, panel NDV y modales centrados. |
| 1.0.8 | Demo completo tienda online (sub-flujos, HTTP, dataLayer, Stripe, diagramas). |
| 1.0.7 | Visor 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.
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.