Repository navigation
docs(fr-044): Plan 2 — report view lowering, relative dates, persistence reads in five ports - #398
Merged
Merged
Conversation
…nce reads in five ports The implementation plan after Plan 1 (reporting vocabulary, metamodel 1.1). It covers the TypeScript view lowering for a view-backed object.report and for relative-date filter values on Postgres, SQLite/D1 and MySQL, reading every fixture report through each port's persistence layer, and the reporting section of the metaobjects-authoring skill. The contract is stated as tables the ports copy: which reports lower, the derived fields of a report, measure lowering, time-grain truncation and relative-date expressions per dialect, the view layout, the expected SQL for six canonical reports, and the fixture list. Every SQL expression in the dialect tables was run on Postgres 16, SQLite 3.37 and MySQL 8.4. Cited paths and names were read in the tree; what could not be confirmed is marked UNVERIFIED and listed. Seven questions for the maintainer are at the end.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What this is
The implementation plan that follows Plan 1 (reporting vocabulary and loader validation, #397, metamodel 1.1). One document, no code:
docs/superpowers/plans/2026-10-03-fr-044-plan-2-report-view-lowering.mdPlan 2 covers:
object.reportand for relative-date filter values, on Postgres, SQLite/D1 and MySQL;metaobjects-authoringskill.How to read it
How it was verified
Plan 1 was written from greps and several of its names were wrong. For this plan:
ONLY_FULL_GROUP_BY) and returned the values shown.Two things the read turned up that shaped the plan:
meta migrate --dialect mysqlis refused and the view emitter has no MySQL arm, so "lowering on MySQL" has no existing delivery path. The plan ships the SQL through a library function and the MySQL recipe (open question 2).Open questions for the maintainer
Seven, listed at the end of the plan. The two that change the plan's shape:
The others confirm defaults: UTC bucketing, the existing join-type rule applied to report dimensions, C# and Kotlin generating a report's typed row in this plan, the docs surface, and the numeric contract.
Not in this PR
No implementation code, no fixtures, no skill edits. Plans 3 to 5 are out of scope.