Skip to content

Repository files navigation

ManagerFlightSim

The Flight Simulator for Managers.

License: Apache 2.0 Python 3.11+ Status: MVP

No pilot experiences their first engine failure in the cockpit of a full passenger jet. No manager should experience their first brutal negotiation, their first escalating conflict, or their first overflowing inbox unprepared, in real life, with real consequences.

ManagerFlightSim is an open-source, LLM-powered training simulation for the critical human skills of management and decision-making: prioritization under time pressure, negotiation, conflict resolution, and stakeholder communication — practiced as often as it takes, with zero real-world risk.

You talk to realistic, dynamically-responding AI personas (suppliers, colleagues, management) — not scripted dialogue trees — and get honest, evidence-based feedback afterward instead of a black-box score.


Background

This project didn't start from a blank page. Before writing the simulation engine, we ran a structured benchmark study analyzing twelve reference systems — generic role-play/simulation training, concrete business and negotiation simulation products, and AI/LLM-based training tools specifically — to find out where the real gap in the market was.

The finding: no researched system combines scenario breadth, real LLM dialogue dynamics, transparent evidence-based feedback, and open-source openness at the same time. Most tools trade one for another — a dynamic LLM engine that's closed and opaque about scoring, or an open format with no real conversational AI behind it. ManagerFlightSim is built specifically to close that combined gap, starting with one deeply worked-out module (Procurement) rather than a shallow pass across many roles at once.

Read the full public writeup: docs/research-summary.md (also available as a designed PDF), or the short version in docs/github/background-and-research.md. The complete internal benchmark study — detailed per-system scoring, competitive positioning, internal roadmap — isn't public; the summary linked above covers the findings that matter without giving away the analysis.

What it is

  • A safe, repeatable training ground for high-stakes management conversations, modeled after flight-simulator training theory (functional fidelity, mandatory debriefing, progressive difficulty) and classic assessment-center methodology (in-basket exercises under time pressure).
  • Real LLM-driven dialogue partners with distinct personalities, goals, and negotiation positions — powered by Claude (Anthropic), provider-agnostic by design.
  • Transparent, evidence-based feedback — every competency score is backed by a quote from the actual conversation, not a mystery number.
  • Open source on purpose — so training organizations, universities, and companies can contribute their own abstracted real-world scenarios instead of relying on generic, out-of-the-box training content.
  • Cross-functional perspective-taking — a low-cost, zero-risk form of job rotation: personas are built with real constraints and incentives, not generic counterarguments, so practicing a scenario builds genuine understanding of how other functions actually think, not just how to beat them in an argument.

What it is not

  • Not a general business simulation (like a periodic profit/loss strategy game). It trains the human, conversational side of decision-making, not spreadsheet economics.
  • Not a live decision-assist tool. It's a practice space, never a copilot for real negotiations or real personnel decisions.
  • Not "finished." This is an early, honestly-labeled MVP with one fully worked-out module (Procurement) — see Current Status below.
  • Not an AI autopilot. The LLM plays the other side of the conversation or supports analysis; it never makes the decision for you.

Use Cases & Benefits

Scenario type What you practice Status
Price negotiation under time pressure A supplier raises the price on an order you urgently need, right before delivery. Find a workable deal before your deadline runs out. ✅ Playable now
Simultaneous stakeholder conflict An internal stakeholder demands an immediate answer while you're mid-negotiation with the supplier — you have to manage both conversations, not just one. ✅ Playable now
BATNA-aware negotiation Every persona is built with an explicit negotiation position and walk-away point baked into the data model — practice recognizing when to hold firm versus when a deal is actually worth taking. ✅ Playable now, built into the current scenario
Cross-functional perspective-taking Every counterpart (Production, Sales, Finance, …) is a fully-realized persona with real constraints, not a generic objection — so practicing against them builds authentic understanding of how other functions think, not just how to out-argue them. ✅ Playable now as a byproduct of every scenario; literal role-swap (play as Production/Sales/Finance) is on the roadmap — see below
Inbox triage under time pressure ("Postkorb") The classic assessment-center exercise, reimagined: parallel messages, interrupted calls, and competing priorities, with dynamic LLM dialogue instead of static text. 🚧 Roadmap

Virtual job rotation. One of ManagerFlightSim's most differentiated benefits: because personas and the player's seat are already separate concerns in the architecture, the same scenario library can eventually be played from either side — a buyer can step into Production's, Sales', or Finance's shoes and experience their real pressures firsthand, not just negotiate against them. This is a low-cost, zero-risk alternative to real cross-functional job rotation programs, and it compounds with every persona added to the library. Today this happens implicitly, through realistic counterparts; literal role-swapping is a near-term roadmap item (see docs/github/positioning.md for the full framing).

Sample Dialogue

A real excerpt from a live session (unedited, captured against the Anthropic API — full transcript and the resulting debriefing in docs/screenshots/). The player countered a supplier's price increase with a framework-contract offer; here's how the persona, Thomas Berger, responded in character:

You: Guten Tag Herr Berger, 8,3% Preiserhoehung ist fuer uns schwer darstellbar. Wuerden Sie bei 43.200 EUR mitgehen, wenn wir im Gegenzug einen Rahmenvertrag ueber 12 Monate anbieten?

Thomas Berger: Guten Tag, das ist zumindest ein Gesprächsangebot, das ich ernst nehmen kann – im Gegensatz zu einem reinen "geht nicht". Ein Rahmenvertrag über 12 Monate ist für uns natürlich interessant, keine Frage. Aber lassen Sie uns das konkret machen, bevor ich Ihnen bei 43.200 EUR zusage. [...] Welches Abnahmevolumen pro Quartal stellen Sie sich vor? Wenn wir über die 12 Monate auf eine Gesamtmenge kommen, die deutlich über die aktuellen 500 Stück hinausgeht [...] dann können wir über die 43.200 EUR reden.

The current scenario runs in German (the team's working language); the engine and persona system are language-agnostic. No branching dialogue tree produced that response — the persona reasoned about the offer and pushed back with a concrete counter-condition, in character, on its own.

Current Status

This is an MVP, not a finished product — but a genuinely playable one:

  • ✅ Real LLM-powered persona dialogues (Anthropic Claude), with retry/backoff and clear error handling
  • ✅ One fully written scenario — "Angebotsauswertung unter Zeitdruck" (Offer Evaluation Under Time Pressure) — with two distinct personas (a supplier pushing a price increase, an internal stakeholder demanding an immediate answer)
  • ✅ Working time-pressure mechanic, decision tracking, and a rule-based debriefing that cites concrete evidence from your conversation
  • ✅ Clean, tested, typed Python codebase (pytest, ruff, mypy all green)
  • 🚧 Currently one module: Procurement. The broader "any manager role" vision is the roadmap, not the current feature set — see Roadmap.

Full functional/non-functional requirements: docs/lastenheft-mvp.md.

Quick Start

# 1. Clone and enter the repo
git clone https://github.com/<your-org>/managerflightsim.git
cd managerflightsim

# 2. Create and activate a virtual environment
python -m venv .venv
source .venv/bin/activate        # Windows: .venv\Scripts\activate

# 3. Install dependencies
pip install -r requirements.txt

# 4. Configure your LLM API key
cp .env.example .env
# open .env and set ANTHROPIC_API_KEY

# 5. List available scenarios
python main.py list-scenarios

# 6. Play one
python main.py run angebotsauswertung_zeitdruck

# Run the test suite
pytest

You'll need your own Anthropic API key — ManagerFlightSim doesn't bundle or proxy LLM access; you always run it against your own key.

How It Works

src/
├── models/    # Pydantic data models — Scenario, PlayerState, Stakeholder, Decision, FeedbackResult
├── agents/    # LLMClient (provider access) + PersonaAgent (role-consistent dialogue partners)
├── engine/    # Scenario run state machine — start, record decisions, time, completion
└── feedback/  # Rule-based scoring — cites evidence from the actual conversation
scenarios/     # Scenario definitions (Python modules) + registry

Design principle: a deterministic scenario shell (goals, time budget, success criteria) around a variable LLM-driven "weather system" (persona behavior) — the same separation that makes flight simulators work. A visual diagram of this flow: docs/screenshots/architecture-diagram.md. Full architecture notes: docs/architecture.md.

Roadmap

Not commitments with dates — a direction, prioritized by what closes the biggest gap first (see docs/lastenheft-mvp.md for the full reasoning):

  • Real-time voice interaction (speech-to-text + text-to-speech, including voice cloning) — one of the highest-priority items on this list, not a someday-maybe. Talking to a persona under time pressure, the way an actual phone call with a supplier feels, is a different order of realism than typing at one. Contributions on the voice side are explicitly welcome — STT/TTS integration, real-time latency, and persona-consistent, ethically-bounded voice cloning are all open problems a new contributor can make real progress on. See Current Limitations & Research Directions below for where we think the hardest, most interesting work actually is.
  • Role-swap / virtual job rotation — play a scenario from the other seat (Production, Sales, Finance, …) instead of always negotiating against it; a natural extension of the existing persona/player separation, not a rebuild
  • Postkorb (in-basket) scenario type — parallel messages, interrupted calls, true multi-channel time pressure
  • More scenario archetypes — escalation, supplier risk/disruption, cross-functional conflict
  • Career-level progression — Junior Buyer → Category Manager → Head of Procurement, with rising complexity per level (a "type rating" system, borrowed from pilot training)
  • Community scenario contributions — a simpler (YAML) authoring format so non-developers can contribute scenarios
  • Additional manager modules beyond Procurement — Sales, Project Leadership, Team Management, etc., reusing the same engine
  • Agent-testing mode — the same scenarios and transparent scoring rubrics, exposed as a testbed for autonomous/agentic management systems

Current Limitations & Research Directions

An honest self-assessment, not just marketing copy. Role-based persona realism is already strong — the Sample Dialogue above is unedited, generated live by the LLM with no dialogue tree behind it. What's still limited — here and across the field, not just in this project — is deep, stable imitation of one specific real person's full communication style and strategic behavior under sustained pressure: a persona modeled on one real supplier or colleague, holding their exact tone, tells, and negotiation instincts consistently across a long, high-stakes conversation. That's a genuinely open research-and-engineering problem, not a solved one.

We see that as an invitation, not a weakness to downplay. Persona fidelity and real-time voice (speech-to-text, text-to-speech, voice cloning — see Roadmap above) sit at the same frontier, and we want ManagerFlightSim to be one of the places where the open-source community pushes it forward, rather than just a consumer of whatever techniques emerge elsewhere. If that problem space interests you, see Contributing below.

Contributing

Contributions are very welcome — new scenarios especially. See CONTRIBUTING.md for how to add a scenario, the code style/test expectations, and how to propose a new manager-role module.

Documentation

Doc Content
docs/lastenheft-mvp.md Full functional & non-functional requirements, MVP scope
docs/architecture.md Module responsibilities and design principles
docs/screenshots/ Real captured CLI/debriefing transcripts and an architecture diagram
docs/research-summary.md Public research summary — the market-gap findings behind the project, without the internal competitive analysis (also as PDF)
docs/github/background-and-research.md Short summary of the research and market gap analysis, with pointers to the public research summary
docs/github/ Vision, positioning, and high-level roadmap for this project

License

Apache License 2.0 — see LICENSE. Free to use, modify, and self-host, including commercially.

About

Open-source LLM-powered flight simulator for managers. Practice high-stakes negotiations, conflict resolution and decision-making under time pressure — safely and repeatedly.

Topics

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages