Project description

Organizations often fail after a problem has already been seen. The problem changes as it moves upward: a production incident becomes a delay, the delay becomes a risk, and the risk becomes a reassuring status update. By the time a decision-maker sees it, the report may sound coherent while no longer matching reality.

Many language-agent simulations combine the state generator and the reporter, leaving no independent truth. A transcript can be persuasive while still lacking evidence of distortion.

Groundline gives the operational world its own authority. The world engine computes the state; language carries reports about local evidence.

The system runs a small simulated company with persistent employees arranged in a configurable reporting tree. The included scenario has Product, Engineering, and QA departments. The configuration also supports deeper, unbalanced trees and gives each employee a role, department, skills, honesty, blame sensitivity, and utility weights that remain stable throughout the run.

The deterministic world engine owns the business state. It computes task progress, dependencies, quality, defects, deadlines, reliability, and incident severity from a seed and a scenario. A real shock is injected at a known point in the run. No model response can directly set those values.

Default demo

The default demo is deliberately small enough to inspect:

Setting Value
Persistent employees 13
Simulation ticks 6
Incident Engineering api work item at tick 3
Treatment cells 4
Paired seeds 32
Run artifacts 160

Each run contains a request, event ledger, decision ledger, distortion metrics, and hash-verifiable manifest.

Reporting path

Employees receive scoped evidence. Hidden world state stays outside the policy context. A policy may choose a report and a permitted action, while the world engine resolves the action and records its real consequence. Reports travel upward one level at a time, so a manager sees subordinate reports and local evidence, never a privileged copy of the simulator’s truth. The executive dashboard therefore represents a belief assembled through the hierarchy while the simulator keeps an authoritative record beside it.

Groundline then measures the difference. Distortion is calculated numerically between reported state and world truth, broken down by time, department, and hierarchy depth. The operator can change incentive pressure and manager attention, hold the seed fixed, rerun the same company, and compare the curves. A no-pressure ablation checks whether distortion shrinks when the proposed mechanism is removed. The evidence is the metric’s response to the intervention; transcripts provide context for the measured path.

Measurement

For employee $i$ at tick $t$, the report and world state each contain four normalized health dimensions: progress, quality, schedule, and reliability. Groundline computes a weighted vector loss:

$$ L_{i,t} = 0.20\lvert p^{r}{i,t}-p^{w}{t}\rvert + 0.30\lvert q^{r}{i,t}-q^{w}{t}\rvert + 0.20\lvert s^{r}{i,t}-s^{w}{t}\rvert + 0.30\lvert r^{r}{i,t}-r^{w}{t}\rvert $$

The optimism bias used for upward amplification is the difference between the report’s aggregate health score and the world score:

$$ B_{i,t}=H^{r}{i,t}-H^{w}{t} $$

The configured upward-amplification outcome compares adverse reports from the root executive with adverse contributor reports:

$$ A_{\mathrm{exec},\mathrm{contrib}} =\operatorname{wmean}(B_{\mathrm{exec},t}) -\operatorname{wmean}(B_{\mathrm{contrib},t}) $$

The weighted means use each report’s scoped business value, and only rows below the configured adverse-health threshold enter the outcome. A positive $A_{\mathrm{exec},\mathrm{contrib}}$ means the executive report is more optimistic relative to truth.

The experiment uses paired seeds across a 2×2 design: incentive pressure crossed with manager attention. The same underlying random world is reused in every treatment cell, making the seed the unit of comparison. Groundline reports seed-level contrasts and uncertainty because messages from one run are correlated. Its statistical layer includes paired randomization tests, bootstrap intervals, multiplicity correction, sensitivity checks, and factorial main-effect and interaction estimates. Fixture-policy results are engineering verification for the instrument; their estimates stop at the configured simulation.

Intervention matrix

Low attention High attention
No pressure ablation baseline attention-only intervention
High pressure distortion-inducing condition pressure + verification condition

The same seed (s) appears in all four cells. A paired contrast therefore compares organizational conditions while holding the simulated world’s random tape fixed:

$$ \Delta_{a\rightarrow b}=\frac{1}{\lvert S\rvert}\sum_{s\in S}\left(Y_{b,s}-Y_{a,s}\right) $$

where $Y_{a,s}$ is the seed-level outcome for treatment $a$.

The implementation is Python-first with a React/TypeScript control room. The core modules have deliberately narrow seams: a world engine for truth, an organization model for topology, an observation layer for local evidence, a policy adapter for structured decisions, a simulation runner for the event order, an immutable event ledger, a replay engine, a paired experiment runner, and an analysis layer. The web interface makes the central contrast legible quickly: WORLD TRUTH beside EXECUTIVE BELIEF, a distortion-by-level view, treatment controls, and an evidence inspector that traces a displayed event back to its causal parents.

Data path

[1. INPUT]                  [2. LOCAL CONTEXT]                     [3. ACTION]
+---------------+           +------------------------+           +------------------+
| Seed +        |   ----->  | Scoped Local           |   ----->  | Employee Report  |
| Scenario      |           | Evidence               |           | + Permitted      |
+---------------+           +------------------------+           | Action           |
        |                                                        +------------------+
        v                                                                 |
+---------------+                                                         v
| Deterministic |                                                +------------------+
| World Truth   |                                                | World-Resolved   |
+---------------+                                                | Consequence      |
                                                                 +------------------+
                                                                          |
  [5. OUTCOME]                [4. METRICS & LEDGER]                       v
+---------------+           +------------------------+           +------------------+
| Executive     |   <-----  | Distortion             |   <-----  | Event Ledger     |
| Belief        |           | Metrics                |           |                  |
+---------------+           +------------------------+           +------------------+

Runtime modes

Hosted decisions are treated as a reproducibility problem. In record mode, a language-model response is bound to the complete authorized context and written to a local decision cache. In locked mode, the system refuses an unseen context before making a network call. A finalized run can therefore be replayed without provider credentials. Fresh hosted output remains explicitly nondeterministic until it is recorded.

Policy mode Network Cache miss Purpose
fixture No N/A Deterministic mechanism and regression testing
record Yes Calls provider and stores decision Capture a live structured decision
locked No Fails before network access Reproduce from recorded decisions

GPT-5.6 and Codex

Codex was the primary development environment. It carried the project from research framing and architecture through the Python simulation, statistical design, React interface, regression tests, browser workflows, documentation, and final integration. The important design decisions were made explicit in code and tests: deterministic truth must remain outside the policy, the model must not be prompted to lie, and causal comparisons must reuse paired seeds.

During a bounded compatibility and hardening phase immediately after the GPT-5.6 rollout, early Codex client issues temporarily interrupted the workflow. I used GPT-5.6 through Claude Code and CLIProxyAPI for that portion of the debugging work, then returned to Codex for the final integration and validation pass. That history is intentional and transparent; Claude Code and CLIProxyAPI are not runtime dependencies of Groundline.

Groundline also supports GPT-5.6 as the live employee-policy model through its OpenAI-compatible structured-output adapter. The adapter sends only the employee’s authorized context and never permits model output to become authoritative business state. The current live-provider regression harness measures the provider-neutral structured-decision and record/locked seams; a GPT-5.6 behavioral benchmark requires a separately labeled runtime configuration.

Why this is useful

Groundline gives builders and researchers a sharper question about agent organizations: under a controlled intervention, how much information changed before it reached the person making the decision?

That distinction matters for multi-agent work systems, where a fluent summary can hide a broken chain of evidence. Groundline makes that chain inspectable and makes the mechanism testable.

Scope and limitations

This is a focused instrument for one simulated operational setting. Its causal estimates apply to that configured world; extrapolation to human organizations requires separate validation. Future work can add matrix reporting, committees, cross-functional decision rights, dynamic reorganization, and calibration against human organizational studies while preserving the same separation between computed truth and language.

Built With

Share this project:

Updates