The Problem

Meeting transcripts and large unstructured docs are time‑consuming to summarise; engineers must manually outline, write, and format reports. Lumentis automates this with a single command, pulling in LLM calls to generate polished docs.

What This Does

Lumentis reads a transcript or notes, prompts the user for themes and audience, then runs a wizard (runWizard in src/app.ts) that orchestrates LLM calls, outline generation, and page creation. The core LLM logic lives in src/ai.ts (functions such as callLLM, callOpenAI, callAnthropic), while type definitions are in src/types.ts (AICallerOptions, OpenAIContent, etc.). UI‑related prompts are defined in src/prompts.ts, and utility functions such as parsePlatformIndependentPath reside in src/utils.ts. The generated output is written to a Nextra‑compatible docs folder via src/page-generator.ts.

How It Is Wired

Execution starts at runWizard (src/app.ts:47), which reaches 24 internal functions and is called from a single place. The internal call graph shows callLLM invoked from three call sites, getCallCosts from two, and several others (flattenOutline, deleteDisabledSectionsAndClean, setDisabledSections) each from two places. The most connected module is src/types.ts (Ca 4, Ce 1, instability 0.2), while src/app.ts is the entry point with instability 1, meaning changes ripple widely. The call graph also reveals that runWizard fans out to saveState (×20) and repeatedly calls callLLM (×7), so modifying the LLM routing or cost model has broad impact.

How To Use It

# from the root of a fresh directory
npx lumentis

The CLI prompts for a transcript/doc, then asks about theme, audience, and outline preferences. API keys for the chosen LLM providers (OpenAI, Anthropic, Gemini) must be available; the code references them but no .env file is committed. If you have previously run Lumentis via npx, clear the cache with npx clear-npx-cache or pin a version (npx lumentis@0.2.1-dev).

Real-World Use

A product team uploads a recorded meeting transcript. Lumentis generates an outline, lets the reviewer select sections, and produces a Vercel‑deployable docs site in under a minute, costing a few cents depending on model choice. The team can swap models per stage (e.g., Sonnet for outline, Haiku for body) as documented in the README examples.

Code Health & Issues

  • MEDIUM – Oversized file: src/app.ts contains 889 code lines, hard to hold in one mind; a change ripples widely.
  • LOW – 9 TODO/FIXME markers in src/ai.ts remain unresolved.
  • LOW – 3 TODO/FIXME markers in src/app.ts remain unresolved.
  • HIGH – No lockfile beside package.json; transitive dependencies may differ between install and production.
  • HIGH – No CI/CD pipeline; every merge runs untested.
  • MEDIUM – No Dependabot/Renovate configuration; updates must be audited manually.

The Bottom Line

The repo delivers a functional one‑click doc generator with clear LLM orchestration, but the codebase lacks a lockfile, CI, and automated dependency updates, and the main entry point is a large file that spreads risk. It works well for quick, low‑cost documentation sprints, yet teams needing reproducible builds and ongoing maintenance will want to add the missing scaffolding.