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
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.
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.
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.
Cumulative Stories Done
Line chart tracking stories marked DONE during the sprint. Steady upward slope is healthy; plateauing signals a stall.
Retrospective
(Filled at sprint close.)