Interactive Terminal Application with Rich Framework
New guided CLI application that walks users through memo generation, export, and iteration without requiring knowledge of individual commands, flags, or file paths.
Changelog - 2026-03-24_01
Interactive Terminal Application with Rich Framework
New guided CLI application that walks users through memo generation, export, and iteration without requiring knowledge of individual commands, flags, or file paths. Built with Rich (panels, tables, spinners, themed output) and questionary (interactive select menus, confirmations, text input).
Why
The system has ~15 CLI commands spread across src/main.py, cli/generate_one_pager.py, cli/generate_tables.py, cli/export_branded.py, cli/assemble_draft.py, cli/md2docx.py, and more. Each requires knowing the exact module path, required flags, file paths, and dependency ordering. For anyone who didn't build the system, this is hostile.
The interactive app provides a single entry point:
python -m cli.terminal_app.py_rich.appWhat Changed
New Module: cli/terminal_app/py_rich/
cli/terminal_app/
├── __init__.py
└── py_rich/
├── __init__.py
├── app.py # Main entry point, menu loop, all user flows
├── discovery.py # Auto-detect firms, deals, versions, curations
└── theme.py # Color palette, Rich theme, questionary stylingCapabilities
Main Menu:
📝 Generate a new investment memo
📄 Generate a one-pager summary
📤 Export an existing memo (HTML / PDF / Word)
🔧 Improve a specific section
🔄 Integrate content from versions
📊 Run a specific agent
Generate Flow:
Interactive firm selection (auto-discovers from
io/directory)Interactive deal selection (shows stage, deck/dataroom status, latest version)
Version strategy: fresh start, resume, or specific version number
Confirmation panel showing all settings before launch
Runs full pipeline, then offers post-run actions (export, one-pager, improve)
Export Flow:
Firm → deal → version selection
Format choice: HTML+PDF, one-pager, Word, or all
Mode selection: light, dark, or both
Chains the appropriate CLI commands automatically
One-Pager Flow:
Firm → deal → version → light/dark mode
Calls
cli/generate_one_pager.pywith resolved paths
Improve Section Flow:
Firm → deal → version selection
Lists all sections from
2-sections/*.mdfor selectionCalls
improve-section.pywith correct arguments
Run Specific Agent Flow:
Categorized agent menu (Assembly, Export)
Resolves paths and runs the selected agent
Integrate Content Flow (scaffolded):
Source review: discovers source catalogs, shows section-level source counts
Competitive review: merges competitors across all versions, shows deduped summary table with AI classifications and version history
Table review and syndicate investigation: placeholders for next iteration
Auto-Discovery (discovery.py)
The app automatically discovers:
Firms: Scans
io/for directories withdeals/subdirectoriesDeals: Finds configured deals with
{DealName}.jsonconfig filesVersions: Lists all version directories with metadata (has final draft, has one-pager, date)
Curations: Detects existing
_source-curation.json,_competitive-curation.json, etc.Deal config: Loads type, mode, stage, deck/dataroom status from JSON
Theming (theme.py)
Consistent visual identity using the Humain Ventures palette:
Accent:
#51A084(Lochinvar green)Primary:
#090E18(Bunker dark)Muted:
#656F84(Blue Bayoux)Rich theme with named styles:
accent,info,muted,warning,error,successQuestionary prompt styling matching the Rich theme
Dependencies
questionary(2.1.1) — added for interactive promptsrich— already installed, used for panels, tables, rules, themed console
Files Changed
| File | Change |
cli/terminal_app/__init__.py | Created — Package init |
cli/terminal_app/py_rich/__init__.py | Created — Package init |
cli/terminal_app/py_rich/app.py | Created — Main app: banner, menu loop, 6 user flows |
cli/terminal_app/py_rich/discovery.py | Created — Auto-detection of firms, deals, versions, curations |
cli/terminal_app/py_rich/theme.py | Created — Color palette, Rich theme, questionary styling |
Verification
Tested against io/humain/ with Metabologic deal:
Banner renders with accent-colored border
Firm discovery finds "humain" with correct deal count
Deal selection shows Metabologic with version history, deck/dataroom indicators
Generate flow produces confirmation table and launches pipeline
Export flow chains HTML/PDF/Word commands correctly
Competitive integration merges 19 competitors from v0.2.4 into summary table