galata. GitHub ↗

Product discovery and decision agenda

Status: proposed investigation plan, not implemented capability or a delivery commitment. Planning target: an offline desktop workbench for fixed-wing aviation and defence engineering, with the CLI and C++ library as the first delivery surfaces. SITL/HIL is an optional later extension. Onboard software is a separate product and assurance effort.

The operating guide, verification report and roadmap define the current baseline. This agenda resolves the decisions needed to extend it. It does not presume that a desktop shell, new aircraft data or a commercial dependency has already been selected.

How to use the agenda

Each package ends with a reviewable decision and retained evidence. An owner role identifies accountability; it does not imply that a person has been hired. At kickoff, assign a named owner, reviewer, effort cap and decision date. Those caps are planning inputs to be agreed against available staff, not estimates invented here. Close a package as proceed, narrow, defer or stop. An unresolved question must retain its consequences and next evidence needed.

Numerical acceptance budgets must be agreed before evaluating candidate implementations. Record their physical quantity, units, envelope, source, uncertainty and consequence of failure. Keep algorithm verification, aircraft model validation, controller assessment and product usability evidence distinct. Two programs agreeing is useful evidence, but shared algorithms, libraries or source models can preserve the same error.

The prototypes below are bounded experiments. They are not permission to build all proposed capabilities. Fix reliability defects affecting an experiment before treating its results as decision evidence; preserve the failing case.

Ordered decision gates

Gate Required decisions Proceed when Stop or narrow when
A — Worth doing D01, D02, D03 and an initial D16 cost assessment A customer role owns a concrete review task, acceptance contract and usable evidence/data route The customer, intended reliance, data access or funding owner cannot be identified
B — Credible engineering scope D04–D09 for the selected initial workflow Numerical comparisons, model semantics and an independent aircraft validation plan justify the proposed claims Only self-consistency is available for a claim requiring external validation, or interpolation/timing semantics remain ambiguous
C — Product architecture D10, D12–D14, then D11 A bounded interoperability profile, recovery model, deployment boundary and measured desktop prototype satisfy the chosen environment A stack needs unavailable runtime services, cannot preserve evidence, or fails the agreed workflow/performance/accessibility contract
D — Fund a delivery slice D16 updated with A–C decisions Named owners, data rights, verification work, support cost and release evidence are funded together A feature-only estimate omits aircraft evidence, independent review, packaging or sustainment
H — Optional SITL/HIL entry D15 after its dependencies A specific bench, timing budget, interface owner and failure policy justify a separate extension Offline speed or an FMI interface is the only evidence offered for real-time suitability

Independent packages may run in parallel once their inputs exist. Gate C need not wait for every future aircraft or controller. It does need a representative workload from Gate A and the relevant semantics from Gate B. Gate H does not block the offline product.

Discovery packages

D01 — Customer decisions and accepted engineering artifacts

D02 — Intended reliance and assurance scope

D03 — Aircraft data access, rights and pedigree

D04 — Independent numerical benchmarks and solver reuse

SLICOT publishes the CAREX benchmark collection and a benchmark generator interface. SciPy documents a QZ-based CARE implementation and its failure conditions. These are candidates for a verified comparison harness, not blanket accuracy or redistribution guarantees.

D05 — Scheduled aerodynamic model contract

D06 — Propulsion, configuration and physically feasible trim

D07 — Signal-flow semantics, discrete clocks and events

D08 — Controller, gain-schedule and estimator lifecycle

D09 — Aircraft validation and decision-level uncertainty

D10 — Interoperability profile and adapter reuse

The JSBSim manual provides a flight-dynamics integration starting point; its software license does not establish every aircraft dataset's pedigree. The FMI specification distinguishes Model Exchange, Co-Simulation and Scheduled Execution; selecting one is part of this decision. For MAT files, SciPy documents support through MATLAB 7.2 and a separate HDF5 requirement for 7.3. Version, shape and metadata choices must therefore be explicit in the profile.

D11 — Desktop shell: Qt versus a local web interface

Investigate actual Qt modules and terms: Qt describes LGPL/commercial options and module-specific obligations and deployment dependencies, including accessibility plugins. A web candidate must follow the relevant isolation model, such as Electron's context isolation and sandbox guidance. Tauri uses platform webviews, so runtime availability and rendering differences belong in the test matrix; Microsoft documents WebView2 distribution choices. None of these sources selects the stack for Galata.

Prototype status. A third candidate now exists and is partly measured: a native AppKit/Objective-C++ macOS shell, built under ADR-0012 and recorded in the M2 implementation guide. It runs the workflow this packet asks for — open a project, edit a typed block diagram, launch and cancel an isolated CLI worker, inspect a failed result, review and restore a saved revision, and read the retained evidence — against the same worker headless callers use. Keyboard-selectable block and sample tables, diagnostic navigation and offline packaging exist and are checked by scripts/check-desktop-package.py.

This does not answer D11. The packet's decision rests on a comparison, and the Qt and web-shell candidates have not been built, so there is nothing to compare against. Nor is the native candidate itself complete on this packet's terms: it has no Developer ID signing or notarization, no clean-target-machine installation, no full accessibility acceptance and no Linux GUI story — and a macOS-only shell cannot satisfy the macOS-first-then-Linux delivery order on its own. The stop/go rule stands unchanged: do not select on a working prototype any more than on screenshots.

D12 — Campaign storage, compatibility and recovery

SQLite documents that WAL mode does not work across network filesystems. A local SQLite index is therefore a candidate to test, not a general shared campaign-store answer. Pin and review the actual selected database release.

Prototype status. The portable-directory half of this comparison is built. ADR-0012 implements content-addressed immutable revisions, run-owned artifacts, OS locking and atomic head publication; ADR-0014 adds bounded history listing and explicit restore. The three-way ownership split this packet asks for is realised as draft, submitted request and terminal record, and interrupted work is distinguishable from completed work by a verified terminal record rather than by the presence of output — the project-file contract states the status meanings.

The indexed-store arm is unbuilt, so the comparison is still open, and the preview deliberately claims no migration policy, compatibility window, shared-drive editing or power-loss durability. Its recovery evidence is local to one filesystem on macOS arm64.

D13 — Offline deployment and execution trust boundary

D14 — Supported platforms and measured performance envelope

D15 — Optional SITL/HIL boundary

D16 — Build, buy, staffing and sustainment decision

Inputs that must remain unknown until supplied

The project does not establish the following customer facts. Record answers and their owner at Gate A instead of substituting convenient defaults.

Unknown Decision it blocks
First user, purchasing sponsor and receiving engineering authority Task priority, acceptance and intended reliance
Aircraft class, configurations, operating envelope and control architecture Model fidelity, data selection, trim and simulation scope
Available aerodynamic/hardware/flight evidence and its permitted use Validation claims, redistribution and sharing defaults
Whether results support a qualification or contractual approval activity Evidence independence, lifecycle and assurance budget
Customer OS/architecture, disconnected-site policy and permitted runtimes Desktop stack, installers, updates and interoperability
Existing MATLAB/Python/simulator/FMI workflows and tool licenses Adapter priority and build/buy choices
Team skills/capacity, funding, procurement lead times and desired horizon Ownership, feasible scope and delivery dates
Required maintenance period, compatibility expectations and support owner Dependency policy, migrations and lifecycle cost
Specific SITL/HIL bench and deadline/failure requirements Whether the optional extension should begin

Official ecosystem sources above were checked on 2026-09-07. At each spike's start, record the precise release, license, platform dependencies and retrieved documentation revision used. A later upstream change requires revisiting the affected decision; these links are discovery inputs, not a frozen dependency approval list.