Sprint 21

Table of Contents

This page documents a sprint (Sprint 21) of ORE Studio. It captures the sprint's mission, current status, and the stories that compose it. For the surrounding context — version goals, sprint order, and product identity — see Version 0.

Mission

Commission the ores.refdata entity library: finish currency and country, and start the twelve entities that were never touched in sprint 20 — with the hard constraint that no new tooling stories enter the sprint unless they directly unblock a commission task.

Status

Field Value
State STARTED
Parent version Version 0
Previous Sprint 20
Start 2026-06-12
End (expected) 2026-06-19
Now Sprint in flight.
Waiting on Nothing.
Next Pick the first story.
Release Notes Added at end of sprint.
Last touched 2026-06-12

Stories

For the definitions of the themes see Themes.

Agile

Story State Start End Description
Open sprint 21 DONE 2026-06-12 2026-06-12 Scaffold sprint 21, move 24 postponed stories, wire manifest, update vcpkg.

Product

Epic: ores.refdata Commissioning

Commission all ores.refdata entities across every access layer: verify Qt UI end-to-end post-NATS migration (list window, detail window, history, delete, eventing), implement or verify shell and CLI commands (list, add, remove), document each entity in the user manual, and file backlog captures for Wt and HTTP gaps. One story per entity. Carried from sprint 20.

Story State Start End Description
Commission: currency BACKLOG     7/8 tasks done; Qt verification carried from sprint 20.
Commission: rounding_type BACKLOG     Aux type: verify SQL, sync all codegen profiles, verify Qt UI, document in currency chapter.
Commission: monetary_nature BACKLOG     Aux type: verify SQL, sync all codegen profiles, verify Qt UI, document in currency chapter.
Commission: currency_market_tier BACKLOG     Aux type: verify SQL, sync all codegen profiles, verify Qt UI, document in currency chapter.
Commission: country BACKLOG     Verify Qt + shell + CLI (existing); manual; Wt/HTTP captures.
Commission: party BACKLOG     Verify Qt; implement shell + CLI; manual; Wt/HTTP captures.
Commission: party_type BACKLOG     Verify Qt; implement shell + CLI; manual; Wt/HTTP captures.
Commission: party_status BACKLOG     Verify Qt; implement shell + CLI; manual; Wt/HTTP captures.
Commission: party_id_scheme BACKLOG     Verify Qt; implement shell + CLI; manual; Wt/HTTP captures.
Commission: contact_type BACKLOG     Verify Qt; implement shell + CLI; manual; Wt/HTTP captures.
Commission: counterparty BACKLOG     Verify Qt; implement shell + CLI; manual; Wt/HTTP captures.
Commission: book BACKLOG     Verify Qt; implement shell + CLI; manual; Wt/HTTP captures.
Commission: book_status BACKLOG     Verify Qt; implement shell + CLI; manual; Wt/HTTP captures.
Commission: business_unit BACKLOG     Verify Qt; implement shell + CLI; manual; Wt/HTTP captures.
Commission: business_centre BACKLOG     Verify Qt; implement shell + CLI; manual; Wt/HTTP captures.
Commission: portfolio BACKLOG     Verify Qt; implement shell + CLI; manual; Wt/HTTP captures.
Commission: purpose_type BACKLOG     Verify Qt; implement shell + CLI; manual; Wt/HTTP captures.

FaceStudio

Story State Start End Description
Accumulate face dataset STARTED 2026-06-11   Build the external/facestudio/ seed catalog; fix accumulation script; wire into seeder.

Market data generation

Story State Start End Description
Consistent synthetic market data generation: approach analysis STARTED 2026-06-25   Survey three academic papers; catalogue ORE asset-class data requirements; produce a developer-ready approach document for consistent, evolvable synthetic market data.
PoC: synthetic market data generation — FX spot vertical slice STARTED 2026-06-25   Vertical PoC implementing FX spot synthetic data generation end-to-end: feed config persistence, generation service with 12 generator types, DB write, NATS tick publishing, and live chart display.

Tooling

Epic: Codegen

Codegen drift correction and guardrails: resolve template-production divergence, land safety and CI checks so generated code stays trustworthy. Carried from sprint 20.

Story State Start End Description
Refactor ores.codegen: merge generator.py into codegen/ package DONE 2026-06-26 2026-06-26 Move generator.py into codegen/core.py; remove _import_generator hack; add compass codegen pillar and entity sub-commands.
Decommission ores.codegen.table model type BACKLOG     Migrate all remaining _table.org models to ores.codegen.entity; remove the table type from the facet catalogue.
Refactor ores.codegen C++ generation BACKLOG     Audit/resolve template-production drift; 13 open tasks; carried from sprint 20.
Decommission legacy codegen bash scripts BACKLOG     Replace direct bash invocations with compass or Python codegen; remove the scripts.
Codegen CI zero-diff invariant BACKLOG     CI job regenerating all registered components, failing on any diff vs HEAD.
Codegen model safety guardrails BACKLOG     Runtime guards for missing component_include/component_core; block dual-template SQL generation.
Codegen unified model — Phase 1: Qt derivation BACKLOG     Derive Qt fields from conventions; drop explicit NATS protocol class names from models.
Codegen unified model — Phase 3: unify temporal templates BACKLOG     Merge temporal and non-temporal C++ template families into single model-controlled templates.
Codegen developer experience improvements BACKLOG     Fix spurious ERRORs in –component mode; add –entity filter; add entity group / tag system for domain-scoped generation.
Introduce per-entity NATS sub-registrars BACKLOG     Replace monolithic registrar.cpp with generated per-entity sub-registrars; isolate handler compilation; unblock incremental service API migration.

Epic: Compass

Story State Start End Description
compass generate catalogue BACKLOG     Auto-regenerate catalogue/index org files by scanning tagged org files.
Fix orphan documents and tag taxonomy BACKLOG     Fix orphaned docs in org-roam graph; create tag inventory; add compass tag validation.
Fix compass review workflow for Claude-based code reviews DONE 2026-06-26 2026-06-26 compass review reply and review resolve break with Claude bot reviews (issue comments, not review threads).
Compass environment improvements: port auto-assignment and fleet env-type display STARTED 2026-06-24   Auto-compute base port during env provision; show full/light type in compass fleet.

Infrastructure

Story State Start End Description
Environment provisioning overhaul DONE 2026-06-14 2026-06-25 GCP-style naming, genesis env, light env type, direct-emacs compass commands, env type through the stack, bootstrap docs.
Verify Windows and macOS CI builds BACKLOG     Re-run MSVC and macOS builds; verify the rfl C1202 fix; fix or file follow-ups.
Upgrade Qt to latest supported version to fix macOS 15 AGL removal BACKLOG     Qt 6.8.x references -framework AGL (removed in macOS 15); the latest supported Qt drops that dependency. CI pinned to macos-14 as stopgap.

Documentation

Story State Start End Description
Knowledge graph housekeeping DONE 2026-06-12 2026-06-15 Ongoing bucket for small doc and knowledge-graph fixes spotted during normal work.
Improve site documentation discoverability BACKLOG     Expose catalogue pages in the site menu; cross-link glossary entries (skills, recipes, memories, knowledge) to their catalogues.

Hotfixes

Story State Start End Description
Fix readme badges DONE 2026-06-12 2026-06-12 Replace broken dynamic PRs badge; fix stale Sprint-20 → Sprint-21 badge.
Hotfix: sccache wrapper breaks Windows builds DONE 2026-06-25 2026-06-25 sccache_wrapper.sh is set as CMAKE_CXX_COMPILER_LAUNCHER on all platforms but .sh scripts are not valid Win32 executables; all Windows CI jobs fail with 'CreateProcess: %1 is not a valid Win32 application'.
Hotfix: base32 alphabet uses string-literal paren-init rejected by Apple libc++ DONE 2026-06-25 2026-06-26 std::array<char,33> was initialised with a string literal via parentheses, which GCC/libstdc++ accepted as an extension but Apple libc++ (Xcode 15.4) rejects. The bug was dormant because sccache had the TU cached; the SCCACHE_BASEDIR change in PR #1294 invalidated the cache, forcing a full recompile that exposed the error.
Hotfix: macOS debug CPack packaging fails with Xcode 16 strip regression DONE 2026-06-26 2026-06-27 CPack Bundle packaging on macOS debug CI fails because CPACK_STRIP_FILES is set unconditionally in build/cpack/CMakeLists.txt and Xcode 16.2 strip crashes when the LC_DYLD_EXPORTS_TRIE export trie grows larger than the original after pruning in ores.refdata.service.
Resolve codegen model unification blockers STARTED 2026-06-27   The codegen model unification analysis (D2256981) identifies six concrete blockers that prevent merging the dual entity+table org files into a single entity file. This story resolves all six so that the content migration (Step 5) can proceed.
Fix Qt party_type build: request.type renamed to code/codes DONE 2026-06-28 2026-06-28 Qt party_type lib failed to build after the party_type messaging codegen rename: PartyTypeMdiWindow, PartyTypeDetailDialog and PartyTypeHistoryDialog still assigned request.type, but delete_party_type_request now uses codes (vector) and get_party_type_history_request uses code. Fixed in PR #1357.

Achievements

Milestones worth capturing as they happen, so the release notes at sprint close have the evidence to hand. Add a dated ** subheading per milestone, with any screenshot via [[proj:assets/images/<file>.png]].

Captures

Real captures filed during this sprint that have not been pulled into a story as tasks — listed here purely for visibility into what the sprint surfaced. Each is an inbox capture (compass capture); triage them at the health review (promote to a story, move to next, or discard).

Capture Tags Description
Rename or split the project glossary documentation, knowledge_graph The glossary is really an agile glossary; rename it or split into focused Zettelkasten documents per domain.
Define what a product vision is before stating ORE Studio's documentation, identity Add a brief conceptual definition of product vision to product_identity.org before the ORE Studio-specific statement; source from MASD methodology doc.
Illustrative org-roam links in doc bodies break the site build documentation, org_roam, ci Bare id-link placeholder syntax in prose fails the site build; use code spans for examples; consider a lint check.

Health Review

(Run sprint-reviewer to generate this section.)

Charts

Charts generated via compass sprint charts. See Sprint health charts for what each chart measures, its purpose, and how to read it.

PRs & Commits per Day

Dual-axis bar chart. PRs (left axis) and commits (right axis) per day. A high commits-to-PR ratio may indicate scope creep.

prs_commits.png

Daily Line Churn

Lines added (green) and deleted (red) per day. Building work produces mostly additions; refactoring produces a mix. Days with no churn may indicate blockers.

line_churn.png

PR Cycle Time

Hours from PR open to merge, one bar per PR. Long bars indicate review bottlenecks. Generated only when PR data is available.

pr_cycle.png

Cumulative Stories Done

Line chart tracking stories marked DONE during the sprint. Steady upward slope is healthy; plateauing signals a stall.

stories_done.png

Retrospective

(Filled at sprint close.)

Emacs 29.1 (Org mode 9.6.6)