Product backlog — deferred
Table of Contents
The deferred bucket of the product backlog. Captures here are captures — ideas worth keeping but not yet attached to any near-term version. Things may live here for a long time.
The table below is regenerated by
projects/ores.codegen/scripts/regenerate_backlog_indexes.py — do not
edit the rows by hand. To add a capture, run
generate_doc.sh --type capture --parent-dir doc/agile/product_backlog/deferred
and re-run the script.
Captures
| Capture | Tags | Description |
|---|---|---|
| ab-notebook: reproducible interest rate curve bootstrapping | quantlib curves reproducibility research |
Luigi Ballabio's Jupyter notebook replicating the Ametrano & Bianchetti (2013) curve bootstrapping paper — a case study in research reproducibility relevant to ORE Studio's curve infrastructure. |
| Accumulate a tagged face dataset for profile pictures | dataset seeder iam ui |
Build a seed catalog of generated face images (via facestudio.app), tagged by attributes, accumulated over time within API throttling limits, for use as account profile pictures. |
| Add "uptime" screen | code |
Add "uptime" screen |
| Add a connection type derived from the local .env | qt connection-manager devex environment |
A special Connection Manager entry type that reads its host/port/subject-prefix parameters live from the current checkout's .env instead of a stored, hand-entered value. |
| Add a dashboard for users | code |
Add a dashboard for users |
| Add a documentation section explaining that ORE Studio is an… | Add a documentation section explaining that ORE Studio is an LLM-first system and describing the combination of MASD, Zettelkasten, and Cybernetics that underpins its information architecture. | |
| Add a generic tagging system | code |
Add a generic tagging system |
| Add a link to the Claude Code settings page in the LLM docum… | Add a link to the Claude Code settings page in the LLM documentation section, so contributors know where to configure skills, memory, and shell settings. | |
| Add a memory for the meaning of key project directories: tmp… | Add a memory for the meaning of key project directories: tmp, samples, and others, so contributors know where transient vs permanent data lives. | |
| Add a message queue | code |
Add a message queue |
| Add batch editing with staging workflow | analysis |
Add batch editing with staging workflow |
| Add chat support | code |
Add chat support |
| Add codegen templates to generate Qt plugin class | codegen qt templates |
Codegen should generate the plugin class (MarketdataPlugin pattern) alongside the other Qt files for a domain entity component. |
| Add compass pr comment command for PR conversation replies | compass pr review gh |
compass review reply handles line-comment threads only; there is no compass command to post a general conversation comment on a PR, forcing a raw gh fallback. |
| Add counterparty party scoping (librarian Phase 2) | code |
Add counterparty party scoping (librarian Phase 2) |
| Add database support for tests | code |
Add database support for tests |
| Add discord support to app | infra |
Add discord support to app |
| Add entity related charts | code |
Add entity related charts |
| Add EOD Cut to book | refdata book eod domain |
Each book has exactly one EOD Cut associated with it, determining which end-of-day run produces its revaluation (REVAL) reports. Not modeled today. Deferred until proper cut support exists elsewhere in the system. |
| Add HBAC support for books and portfolios | code |
Add HBAC support for books and portfolios |
| Add heat map of user sessions | code |
Add heat map of user sessions |
| Add high-watermark support | code |
Add high-watermark support |
| Add ISO 20022 Support | code |
Add ISO 20022 Support |
| Add KYC workflow for counterparty onboarding | code |
Add KYC workflow for counterparty onboarding |
| Add more account commands | code |
Add more account commands |
| Add ores.compute or ores.grid | code |
Add ores.compute or ores.grid |
| Add OTLP exporter for OpenTelemetry collector | code |
Add OTLP exporter for OpenTelemetry collector |
| Add party explorer | ui iam |
A party explorer showing the party hierarchy tree. Selecting a node shows all business units under that party on the right. Supports add, delete, copy of units. |
| Add party level currency and country restrictions | code |
Add party level currency and country restrictions |
| Add pixel-stride downsampling or MA smoothing to FX line chart | ores.qt mktdata charts |
At 5s interval over a 40-minute window the line chart is heavily aliased; a lightweight moving-average or pixel-stride downsample option would surface macro trend more clearly. |
| Add pricing model parameter validation table | code analytics ui database |
Add a table of valid pricing model parameters with their types; validate values on insertion; UI should offer available parameters for a model with type-appropriate fields. |
| Add purge button to all entities | code |
Add purge button to all entities |
| Add self-registration and approval for production tenants | code |
Add self-registration and approval for production tenants |
| Add sign-up approval workflow | code |
Add sign-up approval workflow |
| Add skill to improve UI design | code |
Add skill to improve UI design |
| Add skill to update vcpkg | infra |
Add skill to update vcpkg |
| Add sound assets | code |
Add sound assets |
| Add staging support | code |
Add staging support |
| Add support for FIX | code |
Add support for FIX |
| Add support for PDF generation | code |
Add support for PDF generation |
| Add support for protocol debugging in Qt | code |
Add support for protocol debugging in Qt |
| Add support for row signing | code |
Add support for row signing |
| Add tag badges and filter widget to agile dashboard | agile dashboard ux tags |
Display story/task tags as badges on agile dashboard cards and add a tag filter widget to the sprint and product backlog views. |
| Add trace context propagation to messaging protocol | code |
Add trace context propagation to messaging protocol |
| Add two knowledge pages: one for CMake (what it is, how ORE … | Add two knowledge pages: one for CMake (what it is, how ORE Studio uses it, link to build pages) and one for vcpkg (what it is, how it is used, link to submodule update recipes). | |
| Add version comparison and revert improvements | code |
Add version comparison and revert improvements |
| Add virtual portfolio tree support | code |
Add virtual portfolio tree support |
| Analyse caching at dialog level | code |
Analyse caching at dialog level |
| Analysis on database name service | code |
Analysis on database name service |
| Badge rendering inside QComboBox selected state | qt badge ux combo |
Account type combo in AccountDetailDialog shows plain text in closed state. Full badge rendering requires QComboBox subclass overriding paintEvent, or a coloured swatch QLabel next to the combo. Defer until the pattern is needed in more than one place. |
| Book cost_center should reference a real accounts entity | refdata book accounts data-modeling |
Book.cost_center is currently a free-form nullable string with no validation or link to any ledger/account structure. |
| C++ Complexity Measurements | code |
C++ Complexity Measurements |
| Calendar-aware term structure date preview in Tenor Management | marketdata tenor calendar ui |
Extend the Tenor Management screen's approximate ~Date column into a real, business-day-calendar-aware term structure preview once holiday calendars exist in the codebase. |
| Codegen gap: service application.cpp eventing pipeline not generated for new entities | codegen eventing synthetic refdata gap |
The synthetic service application.cpp has no eventing pipeline wired up for gmm_component, fx_spot_generation_config, or market_data_generation_config. The refdata service wires this by hand: postgres_event_source + event_bus.subscribe<changed_event> + nats.publish, one block per entity. Codegen generates the changed_event header and the SQL notify trigger but does NOT generate or update application.cpp to register the entity in the eventing pipeline. This means saves/deletes in synthetic entities never trigger a stale-indicator in the Qt list window. The fix for now is to hand-write the eventing wiring in ores.synthetic/service/src/app/application.cpp mirroring ores.refdata/service/src/app/application.cpp. The longer-term fix is a codegen target or template that generates (or appends to) the service application eventing registration block, so new entities get eventing for free without a hand-edit gap. |
| Codegen terminology is inconsistent and misaligned with MASD… | Several terms in codegen source, docs, and tasks are misused or conflated: 'type' is used where 'metatype' is correct; 'layer' is used where 'facet' or 'technical space' is correct; 'stereotype' (a UML mechanism) appears where 'metatype' (the MASD concept) is meant; 'tier' is an invented non-MASD word. All must be aligned with the MASD glossary already established in doc/knowledge/masd/ and applied_masd.org. | |
| compass add sprint: automatically wire the sprint into its version | compass agile sprint scaffold |
compass add sprint scaffolds the sprint folder but leaves the version manifest untouched: the new sprint must be wired by hand into version.org's * Sprints table and the agile.org At-a-glance table (Current/Next sprint), and Previous must be set on the sprint itself. compass already knows the current version and the lexicographically previous sprint — it should do all three wirings automatically at scaffold time. |
| Compass search: self-improving mode for failed queries | compass search llm improvement |
Search self-improving mode: when compass search returns no results or the user resorts to manual commands to find what they wanted, enter a self-improving mode. Track subsequent compass searches and shell commands used to compensate. Once the user locates the target document, auto-create a detailed capture recording the failed query, the workaround path taken, the found document, and a suggested improvement to the scoring/indexing. This corpus of failures becomes training data for tuning the search algorithm. |
| compass single-environment mode for plain clones | compass env ux fleet bearings |
Users who clone the repo without following the ores_dev_prime_origin convention should get a fully functional but simplified compass experience with no fleet, no genesis warnings, and no worktree concepts. |
| Configure postgres with async IO | code |
Configure postgres with async IO |
| Consider adding an "entity waterfall" | code |
Consider adding an "entity waterfall" |
| Consider adding clang-tidy build | infra |
Consider adding clang-tidy build |
| Consider adding log command line options to qt | code |
Consider adding log command line options to qt |
| Consider adding MCP support | code |
Consider adding MCP support |
| Consider adding sanitizer build | infra |
Consider adding sanitizer build |
| Consider adding support for A/B testing | code |
Consider adding support for A/B testing |
| Consider adding test times build | infra |
Consider adding test times build |
| Consider adding the update copyrights action from quantlib | infra |
Consider adding the update copyrights action from quantlib |
| Consider extending compass to use vector database techniques… | Consider extending compass to use vector database techniques such as turbovec (https://github.com/RyanCodrai/turbovec). | |
| Consider integrating whatsapp-mcp | code |
Consider integrating whatsapp-mcp |
| Consider saving screenshots of bugs directly into the task d… | Consider saving screenshots of bugs directly into the task directory and linking them from the task doc, so visual evidence is preserved alongside the work record. | |
| Consider using getML to integrate ML | code |
Consider using getML to integrate ML |
| Consider using sqls for LSP | code |
Consider using sqls for LSP |
| Consider using UUID in the database layer | code |
Consider using UUID in the database layer |
| Consolidate message boxes into one non-modal, copiable, standard-button ORE Studio dialog | qt ui-consistency testing dx |
Replace ad-hoc QMessageBox/MessageBoxHelper usage with a single ORE Studio message box: standard buttons, copiable text, and non-modal so it doesn't block test-scenario screenshot capture. |
| Create a AAD build of ORE | code |
Create a AAD build of ORE |
| Create MASD personas and link to cybernetic levels | masd codegen methodology documentation |
Define the personas from the MASD methodology and wire them to the cybernetic levels in OreStudio, once codegen drift is resolved. |
| Create named profiles | code |
Create named profiles |
| Create python script to split xsdcpp output | code |
Create python script to split xsdcpp output |
| Create shared object interfaces | code |
Create shared object interfaces |
| Create span collection and export infrastructure | code |
Create span collection and export infrastructure |
| Create subsets of datasets | code |
Create subsets of datasets |
| Cross-platform service-install generators (Windows, macOS) from the service deployment registry | codegen systemd cross-platform deployment |
Once service_registry.org's deployment aspect (replicas, enabled, extra args, depends_on) exists as the single source of truth for the fleet (see process-supervisor-config-passthrough-gap story), it is deliberately platform-agnostic – nothing in the model is systemd-specific. compass systemd generate is the first consumer (Linux/systemd). Add equivalent generators for Windows (e.g. sc.exe/NSSM-based service installers, or a PowerShell script) and macOS (launchd plist generation), consuming the exact same org model, so ORE Studio's fleet can be installed as native services on all three platforms without re-modeling anything. |
| Currencies: Contractual Settlement (The "Agreements" Table) | code |
Currencies: Contractual Settlement (The "Agreements" Table) |
| Currencies: Party-Specific Settlement Rules | code |
Currencies: Party-Specific Settlement Rules |
| Custom jump distributions and cross-rate correlation matrices | synthetic gmm process backlog |
Configurable jump-size distributions and cross-rate correlation for multi-asset synthetic FX scenarios. |
| Define what a product vision is before stating ORE Studio's | documentation identity agile knowledge_graph |
The Vision section of product_identity.org goes straight to ORE Studio's specific vision statement without first explaining what a product vision is in general. Add a brief conceptual definition — probably sourced from the MASD methodology doc — before the project-specific content. |
| Design per-service RBAC role assignment | security design iam |
Services currently accept any valid JWT regardless of role. Design and implement per-service role assignment so a service only accepts JWTs that carry the appropriate role. |
| Detect and report NATS disconnection | client connection nats reliability |
Detect when the NATS connection or the backend services drop during an active session and surface a clear disconnected state with a way to reconnect. |
| Digital signatures | code |
Digital signatures |
| Docker setup | code |
Docker setup |
| Entity sanity/consistency checks (did-you-really-mean-X) | validation data-quality refdata ux |
A rules-based sanity checker that flags suspicious-but-valid entity data (e.g. missing party/tenant) against an accumulating catalogue of common mistakes. |
| Evaluate adding screamer to ores.analytics | ores.analytics third-party streaming quant |
screamer is a C++/Python library of causal, streaming-safe rolling indicators (moving stats, polynomial fits, signal filters) that could back real-time analytics without look-ahead bias. |
| Evaluate change reasons for role permission tables | analysis |
Evaluate change reasons for role permission tables |
| Event Viewer advanced features | code |
Event Viewer advanced features |
| Explore diffusion models for synthetic trade generation | marketdata synthetic ml research |
TRADES (Berti, Prenkaj, Velardi, arXiv:2502.07071) trains a diffusion model on historical order-book/transaction data to generate realistic synthetic market transaction sequences. |
| Explore using the Emacs chart library to provide lightweight… | Explore using the Emacs chart library to provide lightweight plots of ORE Studio data (e.g. session activity, trade counts) directly inside the Emacs dashboard. | |
| Extend ores.workflow: trade-expiry workflow | code |
Extend ores.workflow: trade-expiry workflow |
| Faker with seeds | code |
Faker with seeds |
| Financial workflows: trade-expiry and barrier-event | code |
Financial workflows: trade-expiry and barrier-event |
| Fine-tune grants for each service account | code |
Fine-tune grants for each service account |
| Fix "informations" plural naming in contact information entities | code |
Fix "informations" plural naming in contact information entities |
| Fold sql_schema_artefact_create into the graph (needs content-predicate activation) | sql_schema_artefact_create is the last entity-scope archetype outside the ores.* graph. Unlike the B8 component folds it is (a) still generated via the legacy get_schema_template_mappings path (core.py:1379,2421), not the graph, and (b) conditional on entity model CONTENT (has_artefact_insert_fn / has_coding_scheme / has_image_id) — only artefact/staging entities get a _artefact_create.sql. The B8 activation seam covers static default-off + drawer-driven enable, but NOT content-predicate activation (generate iff a model property holds). Folding it neutrally needs either a new content-predicate activation mechanism in the walk, or migrating the schema-artefact generation path onto the graph first. Deferred from B8; revisit with the schema-path graph migration. | |
| Formalize the codegen entity knob system as a proper MASD/MDE feature model | codegen masd mde variability feature-model |
Entity-model knobs (has_change_reason_cache, has_uuid_primary_key, badge_key, …) are documented as an ad hoc flat property list today, with no explicit dependency/group structure (e.g. has_csv_xml_io implies the whole xml_*/csv_* group) and an unexamined implicit-presence-condition default (absence == false, an inversion of the literature's usual true default). Formalize this properly against both generic MDE feature-modeling vocabulary and ORE Studio's own established MASD variability model (feature/feature bundle/profile/binding point/configuration scope), resolving two open questions: (1) which knobs are MASD non-structural variability (rendering/projection config) vs structural variability (change the entity's own logical model, e.g. has_tenant_id) – these need different treatment; (2) whether 'shape' (the task EE237306 concept for a reusable knob-combination, e.g. hierarchical-composite domain_entity) should just be renamed to MASD's existing 'profile', which matches its definition closely and predates this session's ad hoc naming. |
| FX trade UX improvements: tabs, currency pairs, rate computation | ui trades ux |
Split the FX forward product into tabs for clarity; introduce a currency pair concept so users select a pair not two individual currencies; compute rate automatically from notional amounts. |
| Gaussian GenAI: synthetic market data generation paper | market_data synthetic_data genai dynamic_milestone |
Paper proposing a Gaussian-based GenAI methodology to generate synthetic market data, relevant to the dynamic milestone. |
| General session dialog | code |
General session dialog |
| Generate C++ code for FPML | code |
Generate C++ code for FPML |
| Generate protocol docs via codegen | code |
Generate protocol docs via codegen |
| Generated entity_type_of() identifier + generic dispatch-tab… | Generated entity_type_of() identifier + generic dispatch-table registrars, as a pattern beyond history: the history-diff redesign (see doc/knowledge/architecture/history_diff_architecture.org) introduces a codegen'd entity_type_of(entity) free-function trait per entity (a single-source-of-truth string identifier, not a struct member) plus a sibling registrar shape to the existing entity-composed registrars (doc/knowledge/architecture/entity_composed_registrars.org): one shared subject/endpoint with a runtime dispatch table keyed by entity_type, instead of N compile-time-distinct per-entity subjects. This does NOT replace the existing typed CRUD registrars (save/get/delete genuinely need typed per-entity payloads, so distinct subjects stay correct there); it's the right shape specifically for operations whose payload is already generic/string-based across every entity, where history is the first instance. Worth considering for future generic cross-entity operations as they arise: audit trail, generic search/autocomplete, generic cross-navigation. When the first such second consumer appears, extract entity_type_of() and the dispatch-table registrar shape into a reusable codegen facet rather than duplicating history's. | |
| Handle long lines in manual with line wrapping | manual documentation formatting css |
The manual does not handle long lines gracefully; long content overflows without wrapping, hurting readability. |
| History and change-eventing for synthetic config entities | synthetic codegen history eventing |
Add version-history viewing and live change-eventing to the synthetic market data generation config entities (container + fx_spot + gmm), to be produced via codegen rather than hand-written. |
| Hoist duplicated Qt chart theme colours into a shared helper | qt synthetic charts tech-debt |
Chart text/grid colour constants (0xCBD5E1 text, 0xFFFFFF12-ish grid) are copy-pasted across five call sites and can drift out of sync. |
| Implement entity history in shell | code |
Implement entity history in shell |
| Implement four-eyes authorisation framework | code |
Implement four-eyes authorisation framework |
| Implement jump/Poisson stochastic process component | synthetic gmm process backlog |
Add a jump/Poisson process type as a selectable synthetic FX spot price-process engine. |
| Improve error message boxes | code |
Improve error message boxes |
| In-app bug report / user-voice feature with screenshot capture | qt feature screenshot bug-report tooling |
Let users capture a screenshot and file a bug report/feedback item from anywhere in the app, stored in the database, with a CLI export path that converts them into agile captures. |
| Introduce clang-tidy and Lizard via PR-delta ratchet strategy | cmake ci cpp tooling clang-tidy lizard |
Safe rollout of clang-tidy and Lizard on a large legacy C++ codebase: enforce new standards only on lines/files changed in each PR (ratchet), leaving existing technical debt untouched. |
| Introduce type primitive registry to replace ad-hoc type flags in codegen | codegen architecture marketdata refactor |
Replace the growing set of is_uuid/is_date/is_timestamp/is_enum flags in codegen with a principled type registry mapping type aliases to their SQL, entity, and domain representations. |
| Investigate Agent-Native Architecture Audit | code |
Investigate Agent-Native Architecture Audit |
| Investigate claude-code-hook-templates | code |
Investigate claude-code-hook-templates |
| Investigate dashql for ideas | code |
Investigate dashql for ideas |
| Investigate git UIs for history display | infra |
Investigate git UIs for history display |
| Investigate GoldenCheetah for ideas on graph displays | code |
Investigate GoldenCheetah for ideas on graph displays |
| Investigate GPU-batched stochastic process generation | analytics.quant performance gpu synthetic |
Investigate a GPU/tensor-batched implementation for simulating large numbers of stochastic processes simultaneously, to avoid a future performance bottleneck. |
| Investigate open no-auth FX spot rate sources for seeding | ores.synthetic marketdata research seeding |
Research freely-available open market-data endpoints (no auth) that provide vaguely-current spot rates across as many currencies as possible, to seed initial prices. |
| Investigate sitmo/cgmm for market data simulator | synthetic marketdata gmm research |
Evaluate the sitmo/cgmm conditional Gaussian mixture model library as a potential port for our synthetic market data simulator. |
| Investigate the graphs used in dirstat | code |
Investigate the graphs used in dirstat |
| Investigate the toolbar icon style in serial studio | code |
Investigate the toolbar icon style in serial studio |
| Investigate time series forecasting with LLMs | code |
Investigate time series forecasting with LLMs |
| Investigate virtual portfolio arbitrary hierarchy construction | refdata |
Investigate virtual portfolio arbitrary hierarchy construction |
| Investigate whether org-publish can detect unchanged files a… | Investigate whether org-publish can detect unchanged files and skip re-exporting them, to speed up site rebuilds which currently re-process the entire doc graph on every run. | |
| LLM Integration | code |
LLM Integration |
| Local versus remote connectivity | code |
Local versus remote connectivity |
| Long-horizon: extend the Emacs dashboard with HTTP-backed en… | Long-horizon: extend the Emacs dashboard with HTTP-backed entity views (list users, trades, etc.) served via the ORE Studio HTTP API, similar to Emacs proced. Requires clear separation of local/remote/CLI modes. | |
| Long-running bundle publishes need progress reporting and async execution | code |
Long-running bundle publishes need progress reporting and async execution |
| Make UI/UX look more professional | code |
Make UI/UX look more professional |
| Management of roles | code |
Management of roles |
| Market Simulator option to show data in pips | ores.synthetic ui ux |
Add a configuration toggle in the Market Simulator to display prices and ranges in pips rather than absolute rate. |
| Mine dexter for ideas | code |
Mine dexter for ideas |
| Mine Karpathy's wiki-based system for compass ideas | compass tooling research knowledge |
Karpathy proposes a wiki-based knowledge system with strong commonalities to compass; review it for ideas to fold into compass. |
| Missing shell functionality | code |
Missing shell functionality |
| Model book_status as a workflow state, not a flat enum | refdata book workflow domain |
The domain lifecycle for opening a book is a multi-step workflow (initiation -> controller review -> enrichment by Finance/Market Risk/Operations -> approval -> access review), tracking where a book sits and who still needs to act. book_status today is a flat 3-value enum (Active/Closed/Frozen). A Pending value was added this session as a placeholder gesture toward the opening workflow but nothing actually tracks workflow position; that Pending value should be reconsidered once real workflow-state modeling is scoped (see fix_book_status_lookup_reference task for the immediate value-mismatch bug, which is separate from this deeper modeling question). |
| Model FX settlement type per currency pair (physical vs. NDF, business-centre dependent) | refdata currency_pair fx settlement modeling |
Currency pair deliverability isn't a single boolean: a pair can have multiple settlement types (physical/cash-NDF), sometimes business-centre dependent, requiring a proper settlement-convention junction model instead of a currency_pair.non_deliverable flag. |
| Model source-book primary/secondary/tertiary relationship | refdata book ledger domain |
A ledger book can be fed by several source books, one designated primary, the others (secondary, tertiary…) deferring to it for valuation events or cash flows. Not modeled today. Deferred until proper ledger support lands – this needs a real notion of ledger book distinct from source book first. |
| Modes of operation | code |
Modes of operation |
| Move generic quant primitives to ores.analytics | ores.synthetic ores.analytics architecture refactor |
Relocate quant building blocks (stochastic processes, etc.) that are not synthetic-data-specific from ores.synthetic to ores.analytics. |
| Normalize book's cost_center into a real Cost Centre entity | refdata book ledger domain |
cost_center is currently free text on book, but the domain hierarchy (Legal Entity -> Entity -> Business Unit -> Cost Centre -> Ledger Book) treats Cost Centre as a formal accounting object – no such entity exists in the codebase. Deferred until proper ledger support lands, since Cost Centre only makes sense within that hierarchy. |
| Notification of deletes | code |
Notification of deletes |
| On-demand PR and CI overview panel on story cards | agile dashboard pr ci |
A button on each story card fetches open PRs and their CI status on demand, broken down by task, without pre-computing anything at site build time. |
| ORE sample data | ore sample_data |
Source or generate a representative set of ORE input files covering the key instrument and market-data types needed for integration testing. |
| ORE's Python TradeGenerator could programmatically build Acme's synthetic trade portfolios | ore acme synthetic python |
external/ore/examples/ORE-Python/TradeGenerator wraps ORE-Python's InputParameters/Portfolio API to build swaps/capfloors/FX options/equity/commodity trades by looking up conventions and curve config by index (e.g. GBP-SONIA), rather than hand-writing trade XML. Discovered while syncing external/ore/examples from a fresh ORE Engine checkout (moved from Examples/TradeGenerator to Examples/ORE-Python/TradeGenerator upstream). Worth evaluating as a building block for the Acme Corporation synthetic-entity story's trade-portfolio generation, instead of hand-crafted XML. |
| ores.diagrams — PlantUML/SVG diagram generator (C++, SQL, org-mode) | diagrams plantuml svg codegen |
New Python component that generates PlantUML source from C++ headers, SQL DDL, and org-mode codegen model files, then renders to clickable SVG. Replaces manually-maintained .puml files and provides the diagram backend for a future SVG viewer app. |
| ores.diff: structured topology for nested entities | Extend the flat diff model with an optional path (ordered segments) on field_value/diff_entry and list-identity-aware mapping guidance, so instruments and other nested entities can diff with real topology (grouping, collapse, leg-aware changes) instead of stringly path names. Design deliberately when the first nested consumer lands. | |
| Persistent test-context widget for the Qt client, seeded at launch | qt devops testing ux |
A floating, always-on-top widget showing what's being tested in a given client instance, seeded from a CLI flag pointing at a JSON file (free text or a tickable checklist). |
| Portfolio types | code |
Portfolio types |
| Properties and options visible in org-mode (e.g. right-panel… | Properties and options visible in org-mode (e.g. right-panel properties drawer) do not appear in the org-roam knowledge graph view. Investigate whether this is a graph rendering limitation or a configuration gap. | |
| Qt: instrument creation in TradeDetailDialog | instruments ore qt trades |
Allow users to create and associate instruments directly from the TradeDetailDialog rather than switching to a separate instrument screen. |
| Read up on ECS | analysis |
Read up on ECS |
| Recipes do not show variables in org-babel | infra |
Recipes do not show variables in org-babel |
| Redesign how currency_pair.deliverable/settlement_currency are derived | refdata sql modeling currency |
currency.deliverable was removed (half-baked, needs proper modeling); the mechanically-derived currency_pairs seed pass now defaults every generated pair to deliverable=true/no settlement currency instead of deriving NDF status from the currency's own flag. Needs a real design for where NDF-ness lives and how pairs derive from it. |
| Redesign Qt ImageCache invalidation strategy | code |
Redesign Qt ImageCache invalidation strategy |
| Reduce duplicated Qt code and clean up technical debt | code |
Reduce duplicated Qt code and clean up technical debt |
| Reduce messaging handler boilerplate | code analytics architecture |
Factor out common JWT verify, permission check, and logging into a base handler class or free function so individual handlers don't repeat the same preamble. |
| Reference paper: analytical stop-loss reinsurance pricing | modelling reference actuarial research |
LinkedIn share of a paper on analytical pricing of time-dependent stop-loss reinsurance and exposure curves under time-changed Brownian motion. |
| Reference: Lean 4 formally-verified pre-trade risk gateway | algo-trading formal-verification risk reference |
Paper on a Lean 4 reference architecture separating policy proposal from modeled authority at a pre-trade risk boundary, with machine-checked proofs of position/commitment caps for a sequential single-account/instrument trading machine. |
| Reference: Thales options trading bot | options algo-trading reference cpp |
cm-jones/thales — a C++23 options trading bot using Black-Scholes and Interactive Brokers, a reference for future algo-trading work. |
| regenerate_backlog_indexes.py only rewrites inbox.org, next.… | regenerate_backlog_indexes.py only rewrites inbox.org, next.org and deferred.org, but discarded.org's 'Discarded captures' table claims to be auto-generated by the same script and is never written — discarded/ entries (missing_plans_index_document, ssh_variable_needs_to_be_in_env) are invisible in the index. Extend the script to cover the discarded bucket. | |
| Remember dialog sizes and positions | code |
Remember dialog sizes and positions |
| Rename compass to something like swiss knife | Compass is a misleading name, it does much more than that. | |
| Rename or split the project glossary | documentation knowledge_graph glossary zettelkasten |
The current glossary is really an agile glossary. A single project-wide glossary mixing agile, domain, and tooling terms would be confusing. Options: (1) rename it to 'Agile glossary'; (2) more in keeping with Zettelkasten, split it into separate focused documents — one per domain (agile, finance/ORE, tooling, etc.) — so each term lives in its natural context and is linked from relevant pages. |
| Replace hardcoded permission strings with per-component constants | code security architecture |
Permission strings like analytics::pricing_engine_types:write are hardcoded inline. Each component should declare a typed permission list; handlers reference the constants. |
| Replace stacked MDI sub-windows with QSplitter panel for FX charts | ores.qt mktdata layout charts |
Stacked FX spot chart MDI sub-windows clip each other when the user tiles them vertically; a dedicated splitter panel would give each chart equal guaranteed space. |
| Restore detached window state after login | code |
Restore detached window state after login |
| Restore detail and history windows after login | code |
Restore detail and history windows after login |
| Retrieve NAT'ed IP address from local IP | code |
Retrieve NAT'ed IP address from local IP |
| Review of Wt | code |
Review of Wt |
| Review skills in claude code templates | code |
Review skills in claude code templates |
| Revisit std::atomic<std::shared_ptr<T>> once macOS libc++ supports it | build osx cpp20 crm marketdata |
crm_ingest_bridge uses a mutex-guarded shared_ptr snapshot instead of std::atomic<std::shared_ptr<const T>> because the macOS CI toolchain (Xcode 16.2 libc++) doesn't implement the C++20 atomic<shared_ptr> specialization for non-trivially-copyable T and fails to compile. Revisit once macOS/libc++ catches up: the atomic form is the more idiomatic modern-C++ expression of the same lock-free-reads-mostly snapshot-swap pattern. |
| Run bootstrap wizards from ores.cli and ores.shell | cli infrastructure |
System, tenant, and party provisioning wizards should be runnable from ores.cli or ores.shell so an operator can bootstrap without the Qt UI. |
| Service command-line configuration dialog with bitemporal support | ui infrastructure database |
A dialog to view and change each service's command-line options (log level, telemetry flags, etc.) saved to the database with bitemporal history so changes are audited. |
| Set up clang-tidy static analysis | cmake ci cpp tooling clang-tidy |
Complement clang-format with clang-tidy: enable a curated set of checks, integrate with compile_commands.json, add CMake targets and a nightly workflow. |
| Show blocked story dependency tree in compass where | compass orient ux |
compass where shows STARTED items but not blocked chains (story C blocked by B blocked by A); surface the dependency tree with root causes in the Orient output. Re-filed from the closed CLI UX redesign story (task E3F0F75F). |
| Show per-environment operational status in compass fleet | compass fleet operate |
Extend compass fleet with each worktree's operational state: services running (parse that worktree's .env for preset/label, check its publish/run PID files and readiness logs — the compass_services Ctx logic, pointed at the worktree root), client running (ores.qt*.pid), and DB last restored (query that env's database via its own credentials, e.g. a timestamp on ores_database_info_tbl). Key constraint: every check must use the target worktree's .env, never the current one's. Unlocked by the db+services compass migration. |
| Split the user manual into Qt and Wt manuals | documentation manual wt qt |
Split the single user manual into separate Qt and Wt manuals — near-identical except where the apps differ — possibly using codegen to share the identical content. |
| Standardise Qt window behaviour and UI consistency | code |
Standardise Qt window behaviour and UI consistency |
| story new: support content flags and first-task control. com… | story new: support content flags and first-task control. compass story new cannot pass –goal/–acceptance through to the story or its first task, and the first task's slug is hard-coded to implement_<story-slug> with no –task-slug or –no-task option. Scaffolding a story whose first task is a real, named task currently forces a scaffold-then-replace dance (delete the task file, re-add with compass add, preserve the UUID). | |
| Story: Additional market data producers (e.g. Bloomberg) | market_data producers backlog product_backlog |
Add a second producer service implementing the market data tick contract (e.g. ores.bloomberg), validating the source-agnostic producer/authority architecture. Future work under the Market data generation epic. |
| Story: Clear component documentation debt | documentation component codegen sprint_19 v0 |
Bring every component's group-level modeling documentation up to standard: missing overviews, unfilled skeleton sections, and missing PlantUML diagrams flagged by validate_docs.sh; reconcile the validator with the create-component runbook's 'group overview is optional' wording. |
| Story: Codegen unified model — Phase 1: derive Qt fields from conventions | tooling codegen sprint_22 v0 |
Eliminate explicit NATS protocol class names from domain_entity.json models; auto-derive Qt section from naming conventions in generator.py. |
| Story: Consolidate standalone scripts into compass | tooling compass scripts refactor documentation sprint_19 v0 |
Inventory the ~61 standalone shell/Python operational scripts, design how they map onto compass pillars (new operational pillars alongside the existing Orient/Search/Scaffold/Capture/Journal), and fold them into compass as documented subcommands so there is one entry point for operating and developing the system. Supersedes and absorbs the service-registry consolidation task. |
| Story: Correlations and derived volatility surfaces | market_data volatility correlation backlog product_backlog |
Correlation management (discrete per-tenor points) and driver/derived volatility-surface proxying in ores.marketdata. Future work under the Market data generation epic. |
| Story: Entity manual: add shell documentation per chapter | documentation manual shell entities sprint_19 v0 |
For each entity chapter in the user manual, document the entity's Qt UI and its shell (REPL) usage side by side. |
| Story: Move trade import orchestration to service layer | market_data trading shell cli sprint_22 v0 |
Move the trade-import orchestration currently embedded in ImportTradeDialog.cpp (portfolio XML parsing, per-trade save, and per-instrument-type dispatch) into a new server-side trade_import_service, backed by an import_trades_request/response NATS message pair mirroring ores.marketdata.core's import_service. |
| Story: Move trade-instrument parsing out of ores.qt.api | refactor cmake trading qt testing sprint_19 v0 |
Extract the Qt-free trade-instrument parsing logic from ores.qt.api into a non-Qt component so the parse dispatch can be unit-tested by linking a real target, removing the hand-maintained source list in the test that broke when the swap TU was split out. |
| Story: Rethink synthetic reference-data generation across entities | sprint_22 v0 |
Currency's ad-hoc Generate feature (client-side blue-highlighted unsaved rows, per-entity hand-wiring) is half-baked and not actually save-able; design a proper cross-entity mechanism for single + batch synthetic generation before reintroducing it anywhere. |
| Support multiple ORE "toolchains" | code |
Support multiple ORE "toolchains" |
| Survey open-source options pricing projects | options pricing research reference |
Catalogue of open-source options-pricing projects to evaluate when building ORE Studio's options pricing screens — models, calculators, and visualisation tools. |
| SVG diagram viewer — interactive JS wrapper for ores.diagrams SVGs | diagrams svg javascript ui |
A thin JavaScript web app that embeds SVG diagrams generated by ores.diagrams, adds pan/zoom and a diagram selector panel, and shows associated documentation (org-mode HTML or GitHub source) in a right-hand detail panel on node click. |
| Synthetic FX generation should respect currency pair conventions | synthetic marketdata refdata data-quality |
Synthetic FX spot/tick generation does not currently apply the tick size, decimal places, or other quoting conventions already stored in refdata's currency_pair_convention, so generated values may not be compliant with real market conventions for a pair. |
| Synthetic service active configuration selection | synthetic service configuration market-simulator |
Add a mechanism for the synthetic service to know which named market-data generation config is currently active, so subscribers always receive data from the right config set. |
| Tangle dataset manifest and methodology from org | compass datasets org-mode documentation |
Replace standalone manifest.json and methodology.txt with a single org-mode file that tangles into both, making datasets visible in the site and searchable via compass. |
| Task: Document the composite versioning approach and codegen recipe | composite_entity versioning documentation codegen party counterparty sprint_22 v0 |
Once the mechanism is fully implemented and proven, write a doc/knowledge/architecture page explaining the approach (cross-referencing the existing target-state doc, ores.sql/PostgreSQL architecture docs, and any other related docs found), plus a codegen recipe explaining which variability knobs (:bump_parent_version:, :generate_touch_function:, :list_by_as_of:) to flip to make an entity a composite parent/child. All links must be proper org-roam ID links, cross-referenced both ways. |
| Task: Qt composite history/version dialog | composite_entity versioning qt party counterparty sprint_22 v0 |
Extend the party/counterparty history dialog to show composed children state as of a selected parent version, built on the as-of composition query and the embeddable child-table widget. |
| Three-level hierarchy in Market Simulator config tree | synthetic qt ui market-simulator |
Restructure the Market Simulator tree to show named config → asset-class group → individual rates, with start/stop propagating down from any level. |
| Tracing: OpenTelemetry identifiers across Qt and NATS | analysis |
Tracing: OpenTelemetry identifiers across Qt and NATS |
| Trade-aware market data filtering for report execution | code |
Trade-aware market data filtering for report execution |
| Triage existing sprint capture.org files | agile triage cleanup |
Each sprint currently has a monolithic capture.org. Once the per-file capture workflow is in place, go through existing capture.org files: promote anything still relevant into the new format or into stories, and delete stale or already-implemented items. |
| Trim compass bearings: –limit and heading integration | compass bearings tooling llm |
Reduce bearings token cost with per-command –limit and surface compass heading as the session's suggested next action. |
| UML class diagrams are missing relationships between classes… | UML class diagrams are missing relationships between classes, and namespace/class descriptions are absent. Add them according to crowding-avoidance rules (not every relationship, only architecturally significant ones). | |
| Understanding Settlements and SSI | analysis |
Understanding Settlements and SSI |
| Unify Account and Administration menus into a single menu | qt ux menus iam admin |
The Account and Administration submenus under System are confusing; investigate how other systems name these and consolidate into one coherent menu. |
| Unify compute wrapper nodes as replicated services | code |
Unify compute wrapper nodes as replicated services |
| Update all UML/PlantUML component diagrams | documentation architecture |
Component diagrams are out of date. Update all PlantUML diagrams in modeling/ folders to reflect the current architecture. |
| Update timestamps to use timezone | code |
Update timestamps to use timezone |
| User interface options | code |
User interface options |
| User-voice experience over the product backlog | ux backlog wt git product |
UserVoice-style portal where users browse, file, vote on and track feature requests — backed by the org-mode product backlog itself, with a service account raising capture PRs, votes as org properties, postgres-served documents, and in-UI triage that merges the capture PR. |
| Users should be able to add picture to profile | code |
Users should be able to add picture to profile |
| Work through all types required for ORE Example 1 | example1 ore types |
Identify and implement every ORE instrument and market-data type needed to round-trip the ORE Example 1 input files end-to-end. |
| Write the ORE Studio development methodology manual | methodology manual documentation llm |
A manual documenting the five-pillar development methodology used to build ORE Studio: the Karpathy vibe-coding approach, Cybernetics, MASD, Agile, and LLMs — explaining how they integrate into a unified product-development practice with concrete examples. |
| Wt entity UI — top-level commissioning story | ores.wt codegen ux |
Lift Wt web-UI commissioning out of per-entity commission-story tasks into a top-level Wt story with per-component tasks; modernize the Wt layer and bring it under codegen. |