Here is my prompt to gemini3:
> Please suggest improvements to Leo's "preface" at https://leo-editor.github.io/leo-editor/preface.html
Everything that follows is the response. Looks like I flunked marketing 101:
Based on an analysis of the text at the provided URL, the "preface" (titled "A Brief Summary of Leo") exhibits several rhetorical weaknesses that undermine its effectiveness for a technical audience.
The current text relies on subjective claims, dated comparisons, and insider jargon ("Leonine way"). A skeptical reader will likely view the broad listing of features (IDE, PIM, Outliner) as a sign of a tool lacking a defined scope, rather than a versatile one.
The following improvements address these issues, focusing on precision and verifiable value propositions.
1. Remove the Dated ComparisonCurrent: “Word outlines are very useful. But Leo makes Word look like a clunky toy.”—Joe Orr
Critique: Comparing a developer tool to Microsoft Word is a category error. It lowers the ceiling of expectations. Most developers do not use Word for code or serious data organization; they use VS Code, Vim, Emacs, or Obsidian. Acknowledging Word implies the tool is aimed at non-technical office users, which contradicts the later claim that it is a "fully-featured IDE."
Recommendation: Remove the quote entirely. Start with a direct definition of the tool's primary differentiator: the integration of outlining with codebase logic.
2. Clarify the "Directed Acyclic Graph" (DAG) ClaimCurrent: “Leo's underlying data is a Directed Acyclic Graphs. As a result, Leo organizes data in completely new ways.”
Critique: Stating the data structure is a DAG is a factual statement about implementation, not a benefit. The statement "organizes data in completely new ways" is vague marketing fluff. The user needs to know why a DAG matters (i.e., zero-cost aliasing/cloning of nodes).
Recommendation: Replace the implementation detail with the functional consequence.
Proposed Revision: "Unlike standard tree-based editors, Leo allows a single node to appear in multiple places simultaneously (clones). Editing a node in one location updates it everywhere, allowing for multidimensional organization of source code."
Current: “Leo's clone find commands enable the Leonine way to refactor programs.”
Critique: This is circular terminology. A new user does not know what "Leonine" means. Using proper nouns to describe a methodology often signals an insular community rather than a standard tool.
Recommendation: Describe the methodology strictly in operational terms.
Proposed Revision: "Leo enables refactoring by treating code structure as a manipulatable [sic] outline, allowing you to reorganize large codebases via drag-and-drop operations rather than text cutting and pasting."
Current: The list claims Leo is an IDE, an Outliner, a Data Manager, a Scripting Environment, and a study tool.
Critique: Tools that claim to do everything often trigger skepticism regarding their depth in any single area. A developer will question how a single tool can compete with IntelliJ (IDE) and Obsidian (PIM) simultaneously.
Recommendation: Hierarchy is needed. Define the tool primarily as one thing (likely a Literate Programming Editor or Scriptable Outliner) and list the others as secondary capabilities derived from that core.
5. Reframe the "Steep Learning Curve" WarningCurrent: “You won't learn all about Leo in a day or two... Please ask for help immediately if you get stuck.”
Critique: While honest, this frames the complexity as a liability rather than an investment. "Ask for help immediately" suggests the UI is non-intuitive.
Recommendation: Focus on progressive disclosure.
Proposed Revision: "While Leo's advanced scripting features offer depth that takes time to master, the basic outlining features provide immediate utility for navigating complex files."
Assumption: The claim "Written in 100% pure Python" assumes the user values interpretability over performance.
Critique: For a modern IDE, "100% Python" may raise concerns about latency and UI responsiveness compared to Rust or C++ based editors (like Zed or VS Code).
Recommendation: If performance is a concern, qualify this claim by explaining why it is Python (e.g., "ensuring the entire editor is hackable [sic] and scriptable by the user at runtime").
Summary of Proposed Structural ChangesHeadline: Change from "A Brief Summary" to "Technical Overview".
Lead: Delete the Word quote. State clearly that Leo is a scriptable outline editor for code and data.
Features: Group features by workflow (e.g., "For Coding," "For Scripting," "For Knowledge Management") rather than a flat list.
Technical differentiation: explicitly link "Clones" to the DAG structure to explain the mechanism of action.
The hardest part is how to talk about all the non-programming things that Leo can do or be made to do. I agreed with most of what the chatbot had to say, including de-emphasizing clones. I'm also a little unhappy when Leo is called an IDE, because these days people expect much more from IDEs than Leo provides, especially for non-Python programming. Yet Leo makes managing long, complex code bases many many times more easy and feasible than anything else I've tried. Leo also makes trying experimental code way easier than anything else (e.g., running a script to test out some programming issue). So hard to capture the flavor of all that!I use Leo every day, all the time, for non-programming things. I don't see how I could replace it if it somehow vanished.
The hardest part is how to talk about all the non-programming things that Leo can do or be made to do. I agreed with most of what the chatbot had to say, including de-emphasizing clones. I'm also a little unhappy when Leo is called an IDE, because these days people expect much more from IDEs than Leo provides, especially for non-Python programming. Yet Leo makes managing long, complex code bases many many times more easy and feasible than anything else I've tried. Leo also makes trying experimental code way easier than anything else (e.g., running a script to test out some programming issue). So hard to capture the flavor of all that!I use Leo every day, all the time, for non-programming things. I don't see how I could replace it if it somehow vanished.
Thanks for sharing! Did you try to put the complete Leo codebase into an AI-based IDE like Windsurf or Google Antigravity? Then you can get a critique of the entire codebase or parts thereof or the complete documentation within the IDE and get automatic improvements (if you wish so) or suggestions for improvements.I know that this isn't the Leonine way of programming, but it might be worth a try.
Leo issue #4472 is a hobby project...This sentence [from gemini3] captures my initial vague idea exactly:
Your proposal essentially transforms Pylint from an Inference Engine (which is slow and guess-prone) into a Logic Validator (which is fast and deterministic).