Instrumento de planificación para fundadores

IdeaClyst

Transforma ideas en bruto en planes SaaS ejecutables — poniendo a Claude y Codex en el mismo consejo.

Next.js 16 React 19 Local-first Puerto 5417 Sin BD · Sin auth

Guía paso a paso

El camino más rápido desde un clon reciente hasta un paquete de planificación completo. El modo simulado es el predeterminado, por lo que no necesitas ninguna CLI para probarlo de principio a fin.

1

Instalar dependencias

Desde la raíz del proyecto:

npm install
2

Crear tu configuración

Copia el archivo de entorno de ejemplo. Usa el modo simulado por defecto — no se requieren CLIs.

cp .env.example .env.local
3

Iniciar el servidor de desarrollo

Luego abre http://localhost:5417 en tu navegador.

npm run dev
4

Iniciar una sesión de ideas

En la página de inicio, haz clic en "Start an Idea Session" para abrir el formulario de ideas (/new).

5

Describe tu idea

Asígnale un título, escribe la idea (al menos una frase, 10+ caracteres) y elige un objetivovalidate · plan · build · pitch · refine. Opcionalmente añade un cliente objetivo, restricciones o una pila tecnológica preferida. Luego envía.

6

Observa cómo delibera el consejo

Llegas a la página de ejecución, que actualiza cada 1,5 s. Los cinco pasos se iluminan a medida que avanzan — listo, activo, pendiente — y cada resultado aparece en el momento en que se completa.

7

Lee tu paquete

Cuando la ejecución termina, las pestañas de resultados se rellenan: Resumen, Backlog MVP, Riesgos, Pruebas de validación, Próximos prompts. Todas las sesiones pasadas están en /runs.

8

(Opcional) Cambiar a las CLIs reales

Para obtener resultados reales del modelo, establece IDEACLYST_AGENT_MODE=cli en .env.local, asegúrate de que ambas CLIs estén instaladas y con sesión iniciada, luego reinicia el servidor e inicia una nueva sesión. Un consejo real tarda ~5–7 min (cinco llamadas en vivo al modelo), frente a los resultados instantáneos del modo simulado.

claude --version && codex login status
9

Encuentra los archivos

Cada ejecución se guarda en disco bajo .ideaclyst/runs/<runId>/ como run.json más artefactos Markdown que puedes leer o compartir fuera de la aplicación.

!

Atención en desarrollo: editar un archivo durante una ejecución puede interrumpir un consejo en curso (el orquestador se ejecuta en proceso). Si eso ocurre, reinicia npm run dev e inicia una nueva sesión.

01Qué es

IdeaClyst es una aplicación Next.js local-first que convierte una idea de producto en bruto en un completo paquete de planificación para fundadores. Lo hace no con un solo prompt, sino orquestando un consejo estructurado — una deliberación de cinco pasos entre dos herramientas de línea de comandos de IA que adoptan roles opuestos y se critican mutuamente antes de llegar a un veredicto.

Imagínalo como una pequeña sala de juntas: un fundador de SaaS escéptico (Claude) y un CTO pragmático (Codex) debaten tu idea hasta darle forma. El resultado se divide en Resumen, Backlog MVP, Riesgos, Pruebas de validación y Próximos prompts listos para pegar.

Toda la aplicación gira en torno a una idea: dos modelos distintos, adoptando roles adversariales y leyendo el trabajo del otro, producen un plan más nítido que cualquiera de ellos por separado. Todo lo demás — el almacén en disco, la interfaz de sondeo, el selector de modo — existe para servir esa deliberación.

Nuevo: un Paso 0 de investigación web (vendido de surfagent) explora el mercado y los competidores de forma autónoma y fundamenta cada paso del consejo en datos reales — además de un modo de Descubrimiento de ideas (/discover) que propone ideas para promover a una ejecución. La investigación ahora genera un dosier estructurado, una matriz de competidores, un mapa de oportunidades, experimentos de validación, un plan de distribución, criterios de descarte, notas sobre el alcance del MVP, una crítica de la página de destino, una base de seguimiento y un briefing para fundadores. Los candidatos de Descubrimiento también obtienen informes completos de ideas con tarjetas de puntuación, escaleras de oferta, señales de prueba, planes de ejecución, ajuste al fundador, análisis críticos, etiquetas de fuente/frescura de palabras clave, exportaciones copiables, prompts de entrega a Claude/Codex, una biblioteca guardada, personalización del perfil del fundador, un radar de tendencias y una vista de comparación lado a lado. La investigación es de mejor esfuerzo y está controlada por modo (simulado/sin conexión por defecto), por lo que una ejecución nunca falla cuando falta Chrome. Consulta el README para más detalles.

02Funciones de un vistazo

Núcleo

Consejo de doble agente

Cinco pasos alternos entre Claude y Codex; cada agente lee los resultados anteriores y critica al otro.

Listo para demos

Modo simulado por defecto

Salida realista y consciente de la idea sin instalar ninguna CLI. Cambia una variable de entorno para usar el modo real.

En vivo

Resultados progresivos

El resultado de cada paso aparece en cuanto se completa — la página de ejecución sondea el disco cada 1,5 s.

Duradero

El disco es la verdad

Cada ejecución persiste como run.json + archivos Markdown. Reiniciar el servidor nunca pierde un resultado.

Estructurado

Paquete con pestañas

El plan final se divide automáticamente en Resumen, Backlog MVP, Riesgos, Pruebas de validación & Próximos prompts.

Seguro

Sin shell, en sandbox

Las CLIs se lanzan con args en array + stdin (sin inyección); Codex se ejecuta en modo de solo lectura en un directorio temporal desechable.

Resistente

Fallo elegante

Una CLI faltante o fallida marca la ejecución como fallida con un mensaje claro — los pasos completados se preservan.

Portable

Artefactos Markdown

Cada ejecución también genera archivos .md legibles por humanos que puedes leer o compartir fuera de la aplicación.

Sin credenciales

Sin secretos manejados

IdeaClyst nunca toca las claves API — ambas CLIs se autentican mediante sus propias sesiones locales.

Investigación

Kit de evidencias

La investigación de Surfagent genera RESEARCH_DOSSIER.json, una pestaña de kit, un briefing para fundadores y artefactos de mercado independientes.

Descubrimiento

Informes completos de ideas

Cada candidato tiene una página de informe con ajuste de negocio, escalera de oferta, por-qué-ahora, prueba, brecha de mercado, marco, palabra clave, ajuste al fundador y análisis crítico.

Decisión

Comparar y exportar

Los informes de candidatos se pueden añadir a /compare y copiar como Markdown, JSON, un resumen de una página o prompts de implementación y revisión para Claude/Codex.

Personal

Perfil del fundador

/profile almacena habilidades, capacidad, riesgo, comodidad con ventas, capital, acceso al mercado y ventajas injustas de forma local.

Biblioteca

Mis cosas

Guarda ideas candidatas e informes en /library, respaldados por JSON local y archivos Markdown bajo .ideaclyst.

Tendencias

Biblioteca de señales de mercado

/trends, /insights y /monitors convierten los descubrimientos locales en tarjetas de tendencias, informes de perspectivas de mercado y comparativas de competidores/tendencias re-ejecutables.

Palabras clave

Inteligencia con fuente identificada

Las secciones de palabras clave de los informes etiquetan la fuente y la frescura, con datos de instantáneas opcionales sobre estimaciones deterministas sin conexión.

Navegación

Áreas de producto ligeras

La cabecera permanece compacta: Explorar tiene Descubrir, Hoy y Tendencias; Espacio de trabajo tiene Sesiones, Biblioteca y Validación. Las herramientas más avanzadas se enlazan desde esas páginas.

Evidencia

Auditoría de fuentes

/evidence indexa las fuentes de ejecuciones, descubrimientos e informes con confianza, frescura, afirmaciones y advertencias de evidencia débil.

Validación

Espacios de trabajo de sprint

/validation, /validation/import, /validation/analytics e /interviews convierten informes, pruebas de precios, resultados pegados y personas compradoras en un rastro de auditoría.

Construcción

PRD, landing y paquetes

Los informes de candidatos abren ahora espacios de trabajo de embudo, página de destino, persona, asesor, versión del informe, paquete de exportación y construir-esta-idea basados en el informe guardado.

Operaciones

Decisiones y memoria

Las decisiones de informe se escriben en .ideaclyst/decisions, alimentan la memoria compacta del consejo y mantienen inspeccionables las llamadas promovidas, aparcadas, descartadas y validadas.

Investigación

Carriles de fuente y caché

/settings/research edita las plantillas de carriles de fuente y muestra la caché con TTL/tamaño limitado usada por búsqueda, reconocimiento y extracción de páginas legibles.

03Arquitectura

IdeaClyst tiene cuatro capas, y la disciplina de diseño es que solo una de ellas sabe si estás en modo simulado o en modo CLI real.

Capa 1 · Interfaz

Páginas App Router

Inicio, formulario de ideas (/new), lista de sesiones (/runs) y una página de detalle de ejecución en vivo que sondea. Renderizado puramente en cliente + fetch.

Capa 2 · API

Manejadores de rutas

/api/runs crea una ejecución y lanza el consejo; /api/runs/[id] devuelve una ejecución para el sondeo; /api/runs/[id]/research encola una actualización solo de investigación y devuelve inmediatamente.

Capa 3 · Orquestador

El pipeline de 5 pasos

orchestrator.ts secuencia el consejo y persiste después de cada paso, incluidos los archivos del kit de investigación estructurada creados durante el Paso 0.

Capa 4 · Agentes + Almacén

La costura de modo y el disco

agents/ es el único código consciente del modo; runs/store.ts lee y escribe la fuente de verdad en disco.

// la única rama que conoce el modo — agents/index.ts
export async function runAgent(agent, prompt, ctx) {
  if (agentMode() === "mock")
    return runMock(ctx.run, ctx.stepKey);   // ignora el prompt, usa la ejecución estructurada
  return agent === "claude"
    ? runClaude(prompt, runDir)            // `claude` real (sin -p), en directorio de ejecución
    : runCodex(prompt);                    // `codex exec` real
}

04El consejo de 5 pasos

Este es el corazón de la aplicación. Los dos agentes se alternan, y el detalle crucial está en la línea "ve" de cada paso — cada agente lee resultados previos específicos, lo que lo convierte en una deliberación en lugar de cinco prompts aislados.

Surfagent — investigación web Claude — fundador de SaaS escéptico Codex — CTO pragmático
0
Surfagent · Investigación web

Investigación de mercado

Antes de que el consejo delibere, Chrome sin cabeza explora la web en busca del mercado y los competidores de la idea y redacta un memo de investigación más un kit estructurado que fundamenta cada paso posterior. De mejor esfuerzo: si falta Chrome o una búsqueda está bloqueada, recurre a síntesis sin conexión — la ejecución nunca falla. Puede desactivarse por ejecución en el formulario de ideas o encolarse más tarde como una actualización en segundo plano sin volver a ejecutar el consejo.

Ve: briefing de idea + web en vivo
1
Claude · Estratega de producto

Estrategia de producto

Somete a presión la idea hasta convertirla en una estrategia creíble: el problema central y quién lo siente más, la cuña más afilada, el cliente objetivo y la disposición a pagar, la diferenciación, el go-to-market y los supuestos más arriesgados.

Ve: briefing de idea
2
Codex · CTO pragmático

Arquitectura técnica

Diseña una arquitectura MVP ligera y ejecutable: pila recomendada y razón, modelo de datos, servicios clave, APIs de terceros, riesgos de construcción y un orden de construcción aproximado. Señala cualquier ingenuidad técnica en la estrategia.

Ve: briefing de idea + estrategia del Paso 1
3
Claude · Crítica

Critica la arquitectura

De vuelta como el fundador escéptico — ataca el plan del CTO desde una perspectiva de producto/envío: ¿Está sobrediseñado para un MVP? ¿Sirve a la cuña? ¿Qué se recorta para enviar en semanas, no en meses?

Ve: briefing de idea + arquitectura del Paso 2
4
Codex · Crítica

Critica la estrategia

El CTO devuelve el fuego sobre la estrategia desde una perspectiva de realidad de ingeniería: ¿qué supuestos son técnicamente costosos o inviables para un MVP? ¿Dónde implica el go-to-market un alcance que el equipo no puede entregar rápidamente?

Ve: briefing de idea + estrategia del Paso 1
5
Claude · Sintetizador

Síntesis final

Reconcilia todo en un paquete decisivo, resolviendo los desacuerdos con una recomendación clara. Genera encabezados exactos ##: Resumen, Backlog MVP, Riesgos, Pruebas de validación, Próximos prompts.

Ve: briefing P1 P2 P3 P4

El intercambio cruzado es el punto clave. Codex construye sobre la estrategia de Claude (paso 2), luego cada uno critica el dominio del otro (pasos 3 & 4), y Claude reconcilia los cuatro en un veredicto (paso 5). Después de cada paso, el orquestador reescribe run.json y un archivo Markdown, por lo que la interfaz revela los resultados de uno en uno.

Descubrimiento de ideas

La mayor parte de IdeaClyst evalúa una idea que tú aportas. El Descubrimiento de ideas (la ruta /discover) hace lo contrario — encuentra ideas para ti, fundamentadas en lo que la gente está luchando realmente en la web. La página en blanco es la parte más difícil de construir; Descubrimiento la reemplaza con señales de demanda real.

1 · Perfil

Cuéntale quién construye

Completa opcionalmente /profile una vez para que el descubrimiento pueda tener en cuenta habilidades, acceso al comprador, capital, tiempo, riesgo y comodidad con ventas.

2 · Briefing

Tú enmarcan la búsqueda

Un mercado o espacio — "apps para visionOS," "IA para contables" — más tu objetivo y capacidad de construcción. El contexto del perfil del fundador se rellena previamente en las notas y puede editarse por exploración.

3 · Exploración

Surfagent recorre la web

Chrome sin cabeza recorre carriles específicos de fuentes — Hacker News, Reddit, Product Hunt, GitHub, páginas de reseñas/precios comerciales y la web en general — en busca de problemas, "ojalá existiera…", lanzamientos y ecosistemas de implementación.

4 · Lectura del mercado

Un panorama honesto primero

Claude redacta una lectura del espacio con fuentes citadas — un veredicto de una línea, señales de demanda, competencia, quién realmente paga y una perspectiva realista para tu objetivo. Empieza con las malas noticias cuando el mercado es difícil.

5 · Mapa de oportunidades

Encuentra la zona de cuña

La exploración crea un mapa de alto dolor/competencia para que puedas ver cuñas nítidas, ideas saturadas pero validadas, apuestas exploratorias y posibles descartadas antes de elegir un candidato.

6 · Conceptos clasificados

Ideas concretas y comparables

Luego 5–7 candidatos, clasificados por mejor ajuste primero, cada uno con una cuña, quién paga, esfuerzo de construcción, fortaleza comercial, mayor riesgo, ajuste, señal + fuente, puntuación de confianza y criterios de descarte.

7 · Informe completo

Inspecciona antes de comprometerte

Cada candidato se abre en un informe completo: tarjeta de puntuación de oportunidad, ajuste de negocio, escalera de oferta, por-qué-ahora, señales de prueba, brecha de mercado, plan de ejecución, ajuste de marco, inteligencia de comunidad y palabras clave, ajuste al fundador, lente de perfil y análisis crítico.

8 · Radar de tendencias

Observa cómo se acumulan las señales

/trends recoge términos de mercado, notas de crecimiento de palabras clave, comunidades relacionadas, fuentes y enlaces de candidatos de los descubrimientos locales.

9 · Guardar/comparar/exportar

Toma una decisión más nítida

Guarda informes en /library, añádelos a /compare, ordénalos por puntuaciones y copia Markdown, JSON, resúmenes de una página, prompts de construcción o prompts solo de revisión.

10 · Promover

Un clic hacia el consejo

"Promover al consejo" convierte un candidato en una ejecución normal y lleva la tesis del informe, el ajuste al fundador, la oferta principal y el veredicto del análisis crítico al briefing del consejo.

Una función de primera clase. Como la investigación, el Descubrimiento está controlado por modo (candidatos sin conexión deterministas en simulado; exploración en vivo + síntesis en modo CLI) y es de mejor esfuerzo — siempre devuelve candidatos, incluso sin conexión o cuando una fuente está bloqueada.

Los descubrimientos persisten en disco bajo .ideaclyst/discoveries/<id>/ (un discovery.json, MARKET_READ.md, OPPORTUNITY_MAP.md, CANDIDATES.md y artefactos de informe/versión), y la página de descubrimiento sondea en vivo, igual que una ejecución. El radar de tendencias escribe en .ideaclyst/trends; perspectivas, monitores, decisiones, exportaciones, carriles de fuente, importaciones de validación y entrevistas escriben en sus propias carpetas locales bajo .ideaclyst/. La cabecera de la aplicación permanece ligera: Explorar abre /discover, /today y /trends; Espacio de trabajo abre sesiones, biblioteca y validación. Comparar, evidencia, decisiones, perspectivas, monitores, entrevistas, clústeres y configuración de investigación se enlazan contextualmente desde esas páginas.

Inteligencia de hoja de ruta

IdeaClyst puede leer la hoja de ruta de un proyecto de Threlmark — un gestor de hojas de ruta local-first independiente — y convertirla en sugerencias de crecimiento fundamentadas. Apúntalo a un proyecto (la ruta /roadmap) y propone nuevas funciones, productos derivados y servicios, cada uno puntuado como una tarjeta de hoja de ruta y respaldado por evidencia web real. Revísalos y luego envía los mejores de vuelta al Inbox de Threlmark.

1 · Fuente

Apunta a Threlmark

Lee la hoja de ruta de cada proyecto directamente del disco (~/.threlmark) — solo lectura — o a través de la API REST de Threlmark. Configúralo en la nueva página /settings; las variables de entorno siempre tienen precedencia.

2 · Mapa de brechas

Conoce primero la hoja de ruta

Una lectura de cobertura determinista — qué categorías son sólidas, cuáles son escasas o están completamente ausentes, qué está hecho frente a lo que sigue abierto — enmarca el análisis antes de ejecutar cualquier modelo.

3 · Tres carriles

Funciones · derivados · servicios

Tres carriles de investigación independientes recorren la web: brechas→funciones, adyacencia→derivados, productizar→servicios. Tú eliges cuántas sugerencias por carril.

4 · Evidencia real

Siempre real, nunca simulado

Solo en vivo + estricto. Cada sugerencia cita enlaces de fuente reales y efectivamente obtenidos, más un por-qué-ahora. Sin fuentes no hay fabricación — solo un aviso claro.

5 · Revisión

Puntuación, fuentes, selección

La página de revisión muestra impacto/evidencia/ajuste/esfuerzo, prioridad calculada, el por-qué-ahora y los enlaces de fuente por tarjeta. Marca las que vale la pena conservar.

6 · Enviar de vuelta

Viaje de ida y vuelta al Inbox

"Enviar a Threlmark" escribe archivos de sugerencias planos en la carpeta suggestions/ del proyecto; el Inbox de Threlmark las acepta en la hoja de ruta. Elige un proyecto de destino diferente para promoción cruzada.

Solo lectura excepto una carpeta. IdeaClyst únicamente escribe en el directorio suggestions/ de un proyecto Threlmark — nunca en sus elementos, tablero o metadatos. Las sugerencias llevan procedencia (tipo, por-qué-ahora, fuentes) que va y vuelve intacta a través del Inbox de Threlmark.

Los análisis persisten bajo .ideaclyst/roadmap/<id>/ y la página sondea en vivo, igual que una ejecución. La fuente de datos y cualquier URL base REST se configuran en /settings; consulta las nuevas variables en Configuración. La inteligencia de hoja de ruta está controlada por modo como el resto de la investigación — se ejecuta en vivo + estricto y muestra solo datos reales.

05Ciclo de vida de la solicitud

Desde el momento en que pulsas enviar, este es el camino exacto — ten en cuenta que el servidor responde antes de que el consejo termine:

#EtapaQué ocurre
1EnvíoEl formulario /new hace un POST del briefing de idea a /api/runs.
2Validar y crearTítulo requerido, idea ≥ 10 caracteres, objetivo debe ser válido. Se escribe una ejecución en estado queued en disco (run.json + IDEA.md).
3Disparar y olvidarEl servidor llama a void startRun(id) sin await y devuelve { runId } con un 201 inmediatamente.
4RedirigirEl cliente navega a /runs/[runId].
5SondearLa página de ejecución obtiene GET /api/runs/[runId] cada 1,5 s, re-renderizando a medida que se rellenan los resultados.
6DeliberarEn segundo plano, el orquestador ejecuta los pasos 1→5, reescribiendo run.json después de cada uno.
7CompletarEl paso 5 se divide en pestañas, el estado pasa a completed (o failed), y el sondeo se detiene.
// api/runs/route.ts — la entrega de disparar y olvidar
const run = await createRun(input);
void startRun(run.id);              // NO se espera — se ejecuta en segundo plano
return NextResponse.json({ runId: run.id }, { status: 201 });

06Modo simulado vs. CLI

Una variable de entorno, IDEACLYST_AGENT_MODE, selecciona el backend. El orquestador y la interfaz son idénticos en ambos modos — solo agents/ se comporta de forma diferente.

AspectoSimulado (predeterminado)CLI
Se establece conIDEACLYST_AGENT_MODE=mockIDEACLYST_AGENT_MODE=cli
¿Necesita CLIs?No — se ejecuta instantáneamente sin conexiónSí — claude & codex instalados + con sesión iniciada
Impulsado porEjecución estructurada + clave de paso (prompt ignorado)El prompt generado (ejecución/paso ignorados)
SalidaMarkdown determinista y consciente de la ideaSalida real del modelo
Usar paraDemos, trabajo de interfaz, desarrollo sin conexiónPaquetes de planificación reales
!

Requisitos previos del modo CLI. Ambos binarios deben estar en PATH y autenticados: claude --version y codex login status. IdeaClyst nunca maneja credenciales — depende completamente de la sesión local propia de cada CLI.

Espera minutos, no segundos. Un consejo completo en modo CLI son cinco llamadas reales al modelo — aproximadamente 50–80 s por paso, ~5–7 min de principio a fin. El modo simulado termina instantáneamente. Las variables de entorno se leen al iniciar el servidor, así que reinicia el servidor de desarrollo tras cambiar de modo, y ten en cuenta que cambiar de modo no recalcula las ejecuciones existentes — inicia una nueva sesión.

¿Una ejecución usó realmente las CLIs reales? Abre su PRODUCT_STRATEGY.md — la salida real es específica de tu idea y hace referencia a tu pila preferida / restricciones, mientras que la salida simulada reutiliza una plantilla fija (intercala el texto de tu idea en frases genéricas como "…apunta a un flujo de trabajo que actualmente es manual, fragmentado o simplemente tolerado").

07Cómo funcionan las llamadas CLI

En modo CLI, cada paso del consejo lanza un proceso real. Ambos backends usan args en array + stdin (nunca una cadena de shell), de modo que un prompt no puede romper el escape ni inyectar sintaxis de shell, y ambos aplican un tiempo de espera por llamada (predeterminado 180 s).

Backend Claude

Sin -p / --print. Cuando la salida estándar de claude no es un TTY (aquí es una tubería), la CLI se ejecuta de forma no interactiva e imprime una única respuesta y luego sale. Así que IdeaClyst simplemente envía el prompt por stdin y lee stdout — no se necesita ninguna flag de impresión. --tools "" lo mantiene como una completación de texto puro (sin acciones agénticas sobre archivos), y se ejecuta dentro del directorio de ejecución propio de la idea (cwd del proceso spawneado):

// agents/claude.ts — se ejecuta en el directorio propio de la ejecución
claude --tools ""                  // prompt por stdin, stdout en tubería (no TTY)
       [--model <model>]            // opcional IDEACLYST_CLAUDE_MODEL

Devuelve stdout recortado. Un binario faltante (ENOENT), una salida no nula sin salida o una salida vacía rechazan con un mensaje claro de "vuelve al modo simulado".

¿Por qué no -p? El comportamiento limpio no interactivo de la CLI se activa por un stdout no TTY, no solo por la flag de impresión — por lo que eliminar -p (y el --output-format exclusivo de -p) aún produce una completación en un solo disparo. Cada idea se ejecuta en su propio directorio, reflejando cómo se aísla Codex.

Backend Codex

Ejecuta Codex de forma no interactiva, en modo de solo lectura, dentro de un directorio de trabajo temporal desechable para que no pueda tocar tu sistema de archivos — solo queremos la completación de texto:

// agents/codex.ts
codex exec --json --skip-git-repo-check --ephemeral \
  -s read-only --color never \
  -C <temp-dir> -o last-message.txt -    // prompt por stdin

El mensaje final limpio se lee del archivo de salida -o; el flujo de eventos --json se analiza como alternativa (y para mostrar un error de API limpio). El directorio temporal siempre se elimina después. Un IDEACLYST_CODEX_MODEL opcional añade -m <model>, de lo contrario se delega en ~/.codex/config.toml.

08Modelo de datos y almacenamiento

IdeaClyst es local-first: no hay base de datos ni estado en memoria. Cada ejecución es un directorio, y run.json es la única fuente de verdad — el orquestador lo reescribe después de cada paso, la API de sondeo simplemente lo lee de vuelta.

Estructura en disco

.ideaclyst/ # IDEACLYST_DATA_DIR (predeterminado) ├─ runs/ └─ <runId>/ # slug con prefijo de marca de tiempo ├─ run.json # ← única fuente de verdad ├─ IDEA.md # el briefing, legible por humanos ├─ RESEARCH_FINDINGS.md # paso 0 (investigación web) ├─ RESEARCH_DOSSIER.json # evidencia estructurada ├─ RESEARCH_TOOLKIT.md # todas las herramientas de investigación ├─ COMPETITOR_MATRIX.md # comparación de competidores ├─ OPPORTUNITY_MAP.md # zonas de oportunidad ├─ VALIDATION_EXPERIMENTS.md # pruebas basadas en fuentes ├─ DISTRIBUTION_PLAN.md # canales tempranos ├─ IDEA_GRAVEYARD.md # criterios de descarte ├─ MVP_SCOPE_NEGOTIATION.md # decisiones de alcance ├─ LANDING_PAGE_CRITIC.md # crítica de página de competidor ├─ COMPETITOR_WATCH.md # base de seguimiento local ├─ FOUNDER_BRIEF.md # briefing conciso para fundadores ├─ PRODUCT_STRATEGY.md # paso 1 ├─ TECHNICAL_ARCHITECTURE.md # paso 2 ├─ CRITIQUES.md # pasos 3 + 4 combinados ├─ FINAL_PLAN.md # paso 5 └─ TRANSCRIPT.md # registro continuo de cada intercambio └─ discoveries/ └─ <discoveryId>/ ├─ discovery.json # lectura de mercado, candidatos, informes ├─ MARKET_READ.md # panorama del mercado ├─ OPPORTUNITY_MAP.md # zonas de cuña ├─ CANDIDATES.md # ideas clasificadas └─ CANDIDATE_REPORTS.md # informes completos de ideas

El registro de ejecución

Una ejecución lleva el briefing (título, idea, objetivo, cliente objetivo opcional / restricciones / pila preferida), un status de queued → running → completed | failed, una etiqueta currentStep legible por humanos para la interfaz, y un objeto outputs que comienza vacío y se rellena. Los IDs de ejecución son slugs con prefijo de marca de tiempo, por lo que un ordenamiento inverso de cadenas produce las más recientes primero de forma gratuita.

EstadoSignificado
queuedCreada, el consejo aún no ha comenzado.
runningConsejo en curso; currentStep rastrea dónde estamos.
completedLos 5 pasos completados; pestañas rellenadas.
failedUn paso generó error; error contiene el mensaje, pasos previos preservados.

División de secciones indulgente. El paso 5 solicita encabezados exactos ##, pero markdown.ts los hace coincidir sin distinguir mayúsculas/minúsculas por palabra clave (p. ej., "mvp" / "backlog" / "scope") y tolera ###. Si no se encuentra una sección, el plan completo vuelve a la pestaña Resumen — así que una pestaña nunca queda en blanco.

09Referencia de la API

GET /api/runs

Lista todas las ejecuciones, las más recientes primero. Devuelve { runs: Run[] }.

POST /api/runs

Valida el briefing, crea una ejecución en cola, lanza el consejo en segundo plano y devuelve { runId } (201). Validación: título requerido; idea ≥ 10 caracteres; objetivo ∈ validate · plan · build · pitch · refine.

// cuerpo de la solicitud
{
  "title": "...",            // requerido
  "idea": "...",             // requerido, 10+ caracteres
  "goal": "validate",        // requerido, uno de los cinco
  "targetCustomer": "...",   // opcional
  "constraints": "...",      // opcional
  "preferredStack": "..."    // opcional
}
GET /api/runs/[runId]

Devuelve una sola ejecución como { run: Run } — esto es lo que sondea la página de detalle cada 1,5 s.

Controlar una ejecución desde el terminal

La interfaz es solo un cliente de esta API — todo lo que puedes hacer en el navegador lo puedes hacer desde un script. Crea una ejecución, sondea hasta que se complete y luego lee el paquete del disco:

# 1. Crear una ejecución → devuelve { "runId": "..." }
curl -s -X POST http://localhost:5417/api/runs \
  -H 'Content-Type: application/json' \
  -d '{"title":"StandupScribe","idea":"A Slack bot that posts a daily standup digest.","goal":"plan"}'

# 2. Sondear el estado hasta completado (cada pocos segundos)
curl -s http://localhost:5417/api/runs/<runId> | jq '.run.status, .run.currentStep'

# 3. Leer el paquete terminado
cat .ideaclyst/runs/<runId>/FINAL_PLAN.md

10Mapa de archivos

src/ ├─ app/ │ ├─ page.tsx # página de inicio │ ├─ new/page.tsx # formulario de ideas │ ├─ runs/page.tsx # lista de sesiones │ ├─ runs/[runId]/page.tsx # detalle de ejecución en vivo (sondea) │ └─ api/runs/ │ ├─ route.ts # GET lista / POST crear + lanzar │ └─ [runId]/route.ts # GET uno ├─ components/ # app-shell, idea-form, result-tabs,# run-card, status-pill, empty-state └─ lib/ ├─ agents/ # LA costura de modo │ ├─ index.ts # despacho runAgent() │ ├─ mock.ts # salida offline consciente de la idea │ ├─ claude.ts # `claude` real (sin -p), por directorio de ejecución │ ├─ codex.ts # `codex exec` real │ └─ prompts.ts # los 5 constructores de prompts ├─ runs/ │ ├─ types.ts # modelo de datos Run / RunOutputs │ ├─ store.ts # lectura/escritura en disco │ └─ markdown.ts # divisor de secciones del plan final ├─ orchestrator.ts # el pipeline de 5 pasos └─ utils.ts # slug/runId + renderizador Markdown

11Configuración

Toda la configuración vive en .env.local (copia desde .env.example). No se requieren secretos.

VariablePredeterminadoPropósito
IDEACLYST_AGENT_MODEmockmock o cli
IDEACLYST_CLAUDE_BINclaudeBinario/ruta de la CLI Claude
IDEACLYST_CLAUDE_MODELvacíoModelo Claude concreto (p. ej. opus), o delegar al predeterminado de la CLI
IDEACLYST_CODEX_BINcodexBinario/ruta de la CLI Codex
IDEACLYST_CODEX_MODELvacíoModelo Codex concreto, o delegar a ~/.codex/config.toml
IDEACLYST_AGENT_TIMEOUT_MS180000Tiempo de espera por llamada al agente
IDEACLYST_DATA_DIR.ideaclystDónde se almacenan las ejecuciones

Investigación y descubrimiento

Todo de mejor esfuerzo; la ruta en vivo necesita una instalación de Chrome/Chromium. La investigación sigue el modo del agente a menos que se sobreescriba.

VariablePredeterminadoPropósito
IDEACLYST_RESEARCH_MODEsigue el modo del agenteSobreescritura mock o live
IDEACLYST_RESEARCH_STRICTdesactivado1 = nunca mostrar contenido simulado/sin conexión; mostrar un aviso claro si los datos en vivo no están disponibles (combinar con live)
IDEACLYST_RESEARCH_ENGINEduckduckgoduckduckgo · bing · google
IDEACLYST_CHROME_BINdetección automáticaSobreescritura de ruta de Chrome/Chromium
IDEACLYST_RESEARCH_USER_AGENTUA de Chrome de escritorioSobreescritura de UA (evita desafíos de bots headless)
IDEACLYST_RESEARCH_CDP_PORT9222Puerto de depuración de Chrome sin cabeza
IDEACLYST_RESEARCH_TIMEOUT_MS20000Tiempo de espera de reconocimiento por página
IDEACLYST_RESEARCH_BUDGET_MS60000Presupuesto completo del paso de investigación/exploración
IDEACLYST_RESEARCH_MAX_RESULTS6Resultados de búsqueda analizados por consulta
IDEACLYST_RESEARCH_MAX_SOURCES3Páginas con reconocimiento en profundidad
IDEACLYST_RESEARCH_IDLE_MS120000Eliminar Chrome sin cabeza inactivo después de

Inteligencia de hoja de ruta (Threlmark)

Desde dónde IdeaClyst lee los proyectos Threlmark. La página /settings también edita estos valores; las variables de entorno tienen precedencia.

VariablePredeterminadoPropósito
IDEACLYST_ROADMAP_SOURCEsettings / diskdisk o rest
THRELMARK_DATA_DIR~/.threlmarkRaíz de datos Threlmark (fuente de disco)
IDEACLYST_ROADMAP_DIR= THRELMARK_DATA_DIRSobreescritura explícita de ruta
IDEACLYST_THRELMARK_APIningunoURL base para la fuente REST (p. ej. http://localhost:5418)

12Ejecución

# inicio rápido — modo simulado, sin CLIs necesarias
npm install
cp .env.example .env.local
npm run dev          # → http://localhost:5417

# luego: abre la app → "Start an Idea Session" → envía → observa cómo se ensambla
ScriptHace
npm run devServidor de desarrollo en :5417 (Turbopack)
npm run buildCompilación para producción
npm run startSirve la compilación de producción en :5417
npm run lintESLint
npm run typechecktsc --noEmit

13Límites y solución de problemas

!

El hot reload interrumpe las ejecuciones en curso. El orquestador se ejecuta en proceso. En desarrollo, editar un archivo durante una ejecución puede matar un consejo activo. Reinicia dev e inicia una nueva sesión. Los pasos ya completados en disco se conservan.

!

"The council run failed" en modo CLI. Casi siempre es una CLI no instalada o sin sesión iniciada. Comprueba claude --version y codex login status, o establece IDEACLYST_AGENT_MODE=mock para volver a las salidas simuladas.

!

Alcance v0. Sin autenticación, facturación, equipos, base de datos ni Docker. Las ejecuciones son archivos locales. Esto es intencional — IdeaClyst es un instrumento de planificación local-first, no un producto alojado.