Product backlog — inbox
Table of Contents
This is the inbox bucket of the product backlog. Every capture created
via compass capture --note "..." lands here. Inbox captures have not yet
been triaged — they are ideas or observations waiting to be assessed.
At triage, move each capture to one of:
next/— ready to pull into an upcoming sprint.deferred/— real but not soon; long-term horizon.discarded/— explicitly decided against.
Or promote directly to a story via compass capture promote <slug>.
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
compass capture --note "..." and re-run the script.
Inbox 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 a compass wait-for-CI command | compass github ci tooling |
Poll a PR's CI checks in a sleep/poll/report loop until the checks of interest are green, harvesting failure logs into the project tmp dir when red. |
| 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 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 compass story done command | compass task done exists but compass story done does not. Closing a story requires manually editing story.org (State, Now, Next, Last touched) and the sprint table. A compass story done command should set State DONE, stamp End date, update the sprint stories table row, and journal the close — analogue of compass task done. | |
| Add Downloads and Agile nav entries to the site | agile downloads nav site |
Create doc/downloads.org listing all release binaries per OS; add Downloads and Agile links to the site nav in .build-site.el. |
| Add postponed state to agile dashboard | agile dashboard sprint |
Dashboard has no 'Postponed' concept; stories returned to backlog at sprint close lose the signal that they were in-flight. |
| Add recipes for doc list commands (compass list, search, etc… | Add recipes for doc list commands (compass list, search, etc.) and link them to the relevant skills in the skills catalogue. | |
| Add shell introduction to Provisioning from the Shell chapter | manual documentation shell ux |
The manual chapter 'Provisioning from the Shell' dives straight into commands without first introducing the shell itself. |
| 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. |
| Apply -fvisibility=hidden to ores.shell (visibility-migration straggler) | shell build infrastructure |
The symbol-visibility migration set -fvisibility=hidden per shared library, but ores.shell never received the flag (it was slated to become static instead and stayed shared). Its Linux .so exports ~34k symbols by default, which masked the missing ORES_SHELL_EXPORT macros that broke the Windows test link (hotfix PR #1166). Add the flag (and -fvisibility-inlines-hidden) to projects/ores.shell/src/CMakeLists.txt like its peers, fix whatever additional exports surface, so Linux catches missing macros at dev time. |
| AppVersionHistoryDialog diff rows mislabelled | The AppVersion history changes tab emits mislabelled diff rows: both 'Wrapper Version' and 'Name' diff wrapper_version, and 'Description' diffs engine_version. Full details similarly maps codeValue to wrapper_version and both nameValue and descriptionValue to engine_version. Pre-existing bug found during the HistoryDialogBase migration and preserved verbatim; fields should map to the actual app_version domain fields. | |
| 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. |
| Cache-bust site asset links at build time | site build css emacs |
Version the stylesheet and asset links the site build emits (e.g. style.css?v=<short-sha>) so returning visitors do not see stale CSS after a restyle. |
| Centralise test target boilerplate into a shared CMake macro | Refactor the 65 per-component test CMakeLists into a shared ores_add_test_target() CMake macro in projects/CMakeLists.txt — eliminates the add_custom_target + add_test duplication that has to be updated every time the test runner pattern changes. | |
| codegen –component run generates all entities not just the target | codegen ux sprint_21 |
Running codegen.sh with –component generates all matching entity files across the component, not just the ones in scope; out-of-scope files must be manually deleted after each targeted run. |
| 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 heading ignores story task order and stale STARTED state | compass heading agile backlog |
compass heading ranks any BACKLOG task from the active story without respecting table order, and does not prompt to close STARTED tasks whose PR has merged. |
| compass needs to support a help command. currently 'compass … | compass needs to support a help command. currently 'compass help' returns an error. there should be a top-level help subcommand that lists all available commands with a one-line description, and 'compass help <command>' should show the full usage for that command. | |
| compass review reply 404s on conversation comments | compass github bug |
review list shows issue (conversation) comment ids, but review reply only posts to the pulls/{pr}/comments/{id}/replies endpoint, which 404s for them (Parent comment not found). Route by comment kind: line-comment ids use the replies endpoint; issue-comment ids should post a new issue comment via issues/{pr}/comments. See compass_review.py _cmd_reply. |
| Compass search: bucketed results by dimension | compass search tooling llm |
Structure search results into three labelled buckets (recipes, now, historic) each capped at N hits, preventing historic agile matches from drowning out current results. |
| compass should own backlog index regeneration | compass agile backlog index |
inbox.org/next.org/deferred.org are regenerated by manually invoking projects/ores.codegen/scripts/regenerate_backlog_indexes.py — outside compass, easy to forget after capture/move/promote operations. Either give compass a verb (e.g. compass backlog reindex) or, better, make every compass operation that touches the backlog (add capture, future sprint pull/carry, capture promote) regenerate the indexes automatically as it lands. |
| 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. |
| compass sprint close: automate carrying unfinished stories to inbox | compass agile sprint closure backlog |
At sprint close, compass should automate the carry: find all stories still in BACKLOG, move story.org to inbox/<story_name>.org (ID preserved, so the sprint table's id-links keep resolving), delete the story folder, and regenerate the backlog indexes. Stories with task files (STARTED/BLOCKED partials) move as whole folders so task history travels. Pairs with capture promote for the pull into the next sprint. |
| compass sprint pull: move carried stories from inbox into a sprint | compass agile sprint scaffold backlog |
The sprint-open counterpart to the close-time carry: pull stories back from the product backlog inbox into a sprint by file move (IDs travel), recreating <story>/story.org folders for flat carries, rewriting the previous sprint's id-links and :sprint_N: filetags to the new sprint, and emitting ready-to-paste Stories table rows. Prototyped as a one-off script during the sprint 19→20 transition; source below. |
| compass story: add a 'done' verb to close a story | compass tooling agile dx |
compass task has a 'done' verb but compass story does not — closing a story means hand-editing the Status table and #+todo: state. Add 'compass story done' to mirror 'task done': flip the story to DONE, stamp the journal, and verify all child tasks are resolved. |
| compass task new switches branches mid-scaffold | compass bug agile |
Each compass task new creates AND checks out its own branch. Scaffolding a story with several task new calls leaves the worktree on the last task's branch, so the scaffold commit and PR ride the wrong branch (saw with PR 1165: scaffold rode feature/timeline-environment-stamp). task new should create the branch without switching, or restore the original branch. |
| Consider extending compass to use vector database techniques… | Consider extending compass to use vector database techniques such as turbovec (https://github.com/RyanCodrai/turbovec). | |
| cpp_enum.hpp.mustache prints 8-bit enum underlying types as … | cpp_enum.hpp.mustache prints 8-bit enum underlying types as raw characters: the stream insert 'os << std::hex << static_cast<{{underlying_type}}>(v)' outputs a char when underlying_type is uint8_t/int8_t instead of a hex number. Fix with unary plus promotion ('<< +static_cast<…>(v)') in the template, regenerate all enum headers, and verify via the codegen zero-diff CI. Raised by Gemini review on PR #1132; declined there because the literate migration must not change template content. | |
| Create a skill to find bearings | Add a new claude code skill to run compass bearings | |
| 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. |
| 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. |
| 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. |
| Document history diff and complete its task record | shell history diff documentation |
Document the shell history-diff feature properly (manual/shell docs and recipe narrative) and fill the empty * Result on the Show history as a unified diff in ores.shell task — it closed before the merge-writes-Result convention firmed up. Shipped in PR #1105; server-computed diff via ores.diff, command: currencies history-diff <iso>. |
| Document pg_notify rename as breaking change in deployment runbook | sql eventing deployment runbook pg_notify |
The ores_{component}_{entity_plural} channel rename requires SQL triggers and application binary to be updated atomically; a partial deploy silently drops all change events. |
| Downgrade profile/model-type incompatibility from error to skip in –component mode | codegen ux dx |
Running a profile with –component emits loud ERRORs for entity types that do not support the profile (e.g. table/junction when running the qt profile); they should be silently skipped in –component mode, not treated as errors. |
| Enforce task result written before PR merge | compass pr workflow process |
compass pr merge should warn or block when the active task's * Result section is empty, preventing the result commit from landing on a dead branch. |
| Fix account registration NATS SSL error | bug client nats registration tls |
Registering a new account fails with 'Account creation failed: NATS connect failed: SSL Error'. The client cannot complete registration against the backend; investigate and fix the NATS/TLS configuration on the registration path. |
| Fix instruments not visible in UI | bug instruments ore qt |
Instruments cannot be seen in the UI. Investigate whether they are being imported and surfaced correctly; fix the import or display path. |
| Fix rfl complexity failure in ClientManagerTradeDetail (Windows + macOS) | portability windows macos rfl ores_qt_api |
ClientManagerTradeDetail.cpp fails on both MSVC (C1202 recursive type too complex) and Clang (fold expression with 502 arguments exceeds nesting limit of 256) because get_trade_detail_instrument_wrapper contains an rfl::Literal with 502 fields. |
| Fix trading_trade_party_roles pg_notify channel name | sql trading eventing pg_notify |
trading_trade_party_roles_notify_trigger_create.sql uses channel ores_trading_party_roles (missing trade_ segment), breaking the ores_{component}_{entity_plural} convention. |
| 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. |
| 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. |
| How do I run codegen? recipe is missing the codegen.sh / org-entity path | The recipe (20D0A77D) only documents run_generator.sh for JSON models. The newer codegen.py entry point (wrapped by codegen.sh) handles org-entity models via 'codegen.sh generate –model <path.org> –profile <name>'. The recipe should be extended to cover: (1) codegen.sh as the preferred wrapper, (2) the –model flag accepting an org file, (3) how to find and copy output from output/ to the target component. | |
| Illustrative org-roam links in doc bodies break the site build | documentation org_roam ci site_build |
Org document prose that uses placeholder link syntax (e.g. id:… in double-brackets) as an illustrative example causes the site builder to attempt link resolution, failing with 'Unable to resolve link'. The fix is verbatim markup; the harder fix is making the exporter tolerate unresolvable links. |
| 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. |
| Merge regenerate_backlog_indexes into compass | ores_compass ores_codegen backlog refactor |
Move regenerate_backlog_indexes.py from ores.codegen into ores.compass and expose it as a compass subcommand, so all backlog operations live in one place. |
| Merge release notes collector script into compass | compass release notes consolidation |
build/scripts/collect_release_pr_data.py gathers merged-PR data (with reviewer-bot overviews) for release notes generation. Fold it into compass — likely a Generate or PR pillar verb (e.g. compass pr collect or compass sprint release-data) — delete the script, and update the release-notes recipe and developer scripts inventory. |
| 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. |
| ores.compass Product Backlog — next and deferred listing | backlog compass python tooling |
Add compass commands to list next and deferred product-backlog captures, mirroring the sprint-backlog listing in compass where. |
| 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. | |
| Parameterize raw SQL in the synthetic organisation publisher | synthetic database security |
organisation_publisher_service.cpp concatenates internally-generated UUIDs directly into SQL (set_party_context call, BU-type dedup query) instead of parameterizing. Risk is low — values are generated UUIDs, not user input — and the pattern is a pre-existing codebase convention, but it should be hardened in a cleanup pass. Flagged by review on PR #1163. |
| pr merge close-out should tolerate already-closed tasks. Whe… | pr merge close-out should tolerate already-closed tasks. When every task on the branch is already DONE and the paperwork committed, the close-out's git commit finds nothing to commit, fails, and aborts the merge (post-#1102 hardening). Detect the nothing-to-commit case and proceed to merge instead of aborting; also consider which task the close-out picks when several tasks share the branch. | |
| pr merge: retry on mergeability race after close-out | After pushing the close-out commit, the immediate gh pr merge can race GitHub mergeability recompute; add a short retry loop. | |
| profiles.json output patterns stale after component regroup | Several output patterns in ores.codegen profiles.json still target the pre-regroup layout (projects/ores.qt.{component}, projects/ores.{component_include}); regeneration writes into nonexistent directories. The field-group pattern was fixed in the instrument-models task; audit and fix the rest, ideally with a CI zero-diff check. | |
| Promote recurring custom repository methods to template variability flags | Five methods appear across 3-5 entities as F2EB1914 paste blocks instead of template output: read_latest(offset, limit), get_total_*_count(), read_at_timepoint(as_of), read_at_timepoint(as_of, pk), read_all() (no-filter). A sixth — batch remove — already has has_batch_remove but is inconsistently used (party uses the flag; country/currency/business_centre use paste blocks). Proposed flags: has_pagination (read_latest + count), has_timepoint_reads (both read_at_timepoint overloads), has_unfiltered_read_all, has_batch_remove (already exists). Each flag bakes in the tenant_id pattern so entity authors cannot forget it. Affected entities: country, currency, business_centre, counterparty, party. Raised during DFD25563 (country codegen sync). | |
| 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. |
| Rebuild org-roam DB independently from CMake | build cmake elisp org-roam |
Extract org-roam DB sync into .build-org-roam.el and add a standalone cmake target so the DB can be rebuilt without a full site build. |
| Recipe: how do I build the site locally? | Add a how-do-I-build-the-site-locally recipe mirroring the serve recipe; cross-reference both so readers find the full build-then-serve workflow. | |
| 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. | |
| 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. |
| sccache daemon inherits vcpkg lock fd from cmake | cmake vcpkg sccache build |
sccache server started by cmake inherits the vcpkg-running.lock file descriptor, blocking subsequent cmake –preset runs until sccache –stop-server is called. |
| Script the project version bump for sprint opening | compass build version sprint scaffold |
The five-file version bump (CMakeLists.txt project VERSION, vcpkg.json version-string, three workflow package filenames, readme sprint badge + commits-since badge) is done by hand each sprint from the recipe. Fold it into compass as part of the sprint-opening flow (e.g. compass sprint bump-version 0.0.N), driven by the new sprint number. Prototype source below. |
| Separate trade and instrument detail dialogs | Trade and instrument are currently displayed in one details dialog. Consider separate dialogs with idiomatic navigation between them; needs a brainstorm on trading-system UX patterns. | |
| 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. |
| Shell: no wizard support for system, tenant, and party provisioners | shell wizard provisioner ux gap |
The shell REPL lacks wizard-style provisioners for system setup, tenant creation, and party creation — commands exist but no guided multi-step flow. |
| 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 timeline bucket generation as a compass writer (for the snapshot skill) | agile timeline compass tooling org-js |
Turn the ad-hoc timeline-bucket generation into a standard compass timeline writer under the snapshot-skill task: read compass timeline generate –json, bucket events into fixed windows, and emit canonical bucket org docs the board parses. |
| story new does not wire its scaffolded tasks into the story table | compass story new generates the scaffold task and the first real task via codegen directly, which unlike compass add task does not append rows to the story's * Tasks table — both rows were missing on the CI retune story (caught by Claude's first PR review). Wire the rows in story new, or route its task scaffolding through the same path as add task. | |
| 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: Add tenant discovery to CLI and compass | tooling cli compass iam tenant |
Developers have no single command to discover which tenants are provisioned and obtain their UUIDs for ORES_TENANT. Add ores.cli iam tenants list to expose tenants from the IAM layer, then wrap it in compass db tenants so one compass command prints code, name, tenant_id and a copy-pasteable export hint. |
| 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: Consolidate history dialogs onto HistoryDialogBase | sprint_19 v0 |
All 67 entity history dialogs duplicate the version-list/load/stale pipeline and 6 hand-roll field diffs with four different idioms. Compute diffs server-side via a domain-to-field-strings mapper and a generic NATS history message; adopt HistoryDialogBase everywhere with DiffResult and a calculateDiff template method in the base. |
| 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: Entity evaluation skill and runbook | llm skill runbook entity evaluation sprint_19 v0 |
Create a reusable skill and runbook for evaluating the health of any entity: coverage matrix lookup, functional verification steps, and gap reporting. |
| 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-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: Symmetric onboarding flags for provisioner wizards | sprint_19 v0 provisioner variability onboarding |
Add party_id column to variability settings, introduce symmetric onboarding.* flags for all three provisioner wizards, replace party.status cache check at login, fix NOTIFY listener thread starvation under heavy load. |
| Story: Unify entity timestamp handling — throw on failure, fix optional<db_timestamp> | sprint_19 v0 time |
Eliminate silent epoch returns from timestamp conversions. All timestamp conversions must throw on failure. Fix optional<db_timestamp> for NOT NULL fields. Replace timepoint_to_timestamp (silent failure) with datetime::to_db_string. Stretch: migrate entity fields from db_timestamp to time_point. |
| 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. |
| Sweep pre-template-fix entities: add security definer and active-rows bootstrap filter | All ores_refdata_validate_*_fn and insert trigger functions generated before PR #1300 (commit 1cb85c9a, sprint 21) lack security definer + set search_path and use a bare not-exists bootstrap check without a valid_to filter. The template is now fixed; this capture tracks whether a coordinated sweep of the existing generated files is warranted before natural recommissioning catches them. | |
| Synthetic parties are created Active, bypassing the party setup flow | synthetic refdata provisioning |
The synthetic organisation generator creates parties with status Active, but the party provisioning flow (Qt wizard trigger via party_setup_required, and the provision party porcelain) is designed around parties starting Inactive and being activated at the end of setup. Synthetic parties therefore never trigger the party wizard and 'activation' is a no-op rewrite. Decide: should the generator create parties Inactive (root included), or is the synthetic path exempt from party setup? |
| System wizard single-tenant default hostname collides with seeded Root Tenant | qt iam provisioning |
The SystemProvisionerWizard's single-tenant mode pre-fills tenant hostname 'localhost', but the database seed now creates the Root Tenant on hostname 'localhost' and tenant hostnames are unique — so the wizard's default path fails with a duplicate-key error. Found live while verifying provision_all.ores (the shell porcelain inherited the same default and had to override with –tenant-hostname default). Fix the wizard default (e.g. derive hostname from code) or the seed. |
| task start crashes after switching to a stale branch | compass bug task workflow |
compass task start resolves the task doc path, switches to the task's branch, then re-reads the doc — but on a branch that diverged before a sprint transition the file lives elsewhere (or compass itself is older), producing FileNotFoundError tracebacks and an unstamped journal. Re-resolve the doc after the switch, or read everything needed before switching; also consider warning when the target branch's compass predates the running one. |
| The My Account password change dialog does not have a show/h… | The My Account password change dialog does not have a show/hide password toggle. Add one so users can verify what they are typing. | |
| 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. |
| Two small ref-data UI bugs: (1) market tiers has an icon but… | Two small ref-data UI bugs: (1) market tiers has an icon button that does nothing — wire it or remove it; (2) deleting a rounding type does not auto-refresh the list — trigger a refresh on delete. | |
| 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 junction entity timestamp type to db_timestamp alias | codegen templates cpp refdata |
The domain_entity section of cpp_domain_type_entity_hpp.org uses db_timestamp (via db_types.hpp) for valid_from/valid_to after PR #1316, but the junction section still uses sqlgen::Timestamp directly. These should be unified for consistency. The composite-PK interaction with sqlgen must be validated first (valid_from is part of the junction PK). See * Design notes in cpp_domain_type_entity_hpp.org for full pros/cons. Recommend a dedicated template-cleanup task after validating with a test junction entity. |
| Use badges in the history dialog | Make history dialog consistent with main window and details dialog for badges by using badges there too. | |
| Warn when creating account without a role assignment | iam accounts ux validation |
Creating a new account without assigning at least one role is most likely an error; show a warning message box as we already do for missing party assignments. |
| Wire 5E47F108 extra-drops kind for remaining entities | codegen sql refdata templates |
Several entities with validate functions (business_unit_types, party_categories, purpose_types, book_statuses) are not yet wired to the extra-drops block kind. |
| 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 org-timestamps to the build output directory | Configure org-publish to write .org-timestamps/ under the build output directory rather than ~/.org-timestamps, supporting clean-build semantics and keeping the home directory uncluttered. | |
| 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. |