Skip to content

Integrate professional semantic reporting - #2

Merged
ahmelkholy merged 23 commits into
mainfrom
integration/platform-reporting-pr1
Aug 21, 2026
Merged

ahmelkholy merged 23 commits into
mainfrom
integration/platform-reporting-pr1

Conversation

@ahmelkholy

Copy link
Copy Markdown
Member

Integrates the complete commit history of #1 into the organization-owned main line, repairs the package-graph version, Julia syntax, constructor precompilation, and canonical type encoding defects found by CI, and removes branch-only restoration automation/status artifacts. Local verification: AIMORAReporting 30/30; Platform repository contract 69/69; deterministic complete-report bundle matches byte-for-byte.

Copilot AI lite review requested due to automatic review settings August 21, 2026 00:50
@ahmelkholy
ahmelkholy merged commit ef1ea2e into main Aug 21, 2026
9 checks passed
@ahmelkholy
ahmelkholy deleted the integration/platform-reporting-pr1 branch August 21, 2026 00:50

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Integrates the AIMORAReporting Julia package into the main line as a full semantic reporting boundary, including typed report structures, QA, deterministic rendering/publication, and a review/approval workflow, while bumping the package version to 0.2.0.

Changes:

  • Bump AIMORAReporting package version to 0.2.0 in both the repo package graph and the Julia Project.toml.
  • Add the AIMORAReporting implementation (types, canonical encoding + hashing, providers, QA, templates, renderers, workflow) and export the public API.
  • Add comprehensive tests plus a runnable complete-report example and a small structural check.jl + Makefile workflow.

Reviewed changes

Copilot reviewed 16 out of 16 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
package-graph.toml Updates AIMORAReporting version in the repository package graph.
AIMORAReporting.jl/Project.toml Bumps version and declares stdlib dependencies for the package.
AIMORAReporting.jl/src/AIMORAReporting.jl Defines the module, includes submodules, exports API, registers default providers in __init__.
AIMORAReporting.jl/src/types.jl Introduces core report/QA/template/publication data types.
AIMORAReporting.jl/src/canonical.jl Implements canonical JSON + SHA-256 hashing utilities for determinism.
AIMORAReporting.jl/src/visuals.jl Adds deterministic downsampling utilities for plot series.
AIMORAReporting.jl/src/providers.jl Adds provider registry and default providers to build semantic reports per study family.
AIMORAReporting.jl/src/qa.jl Adds semantic QA checks for reports, tables, figures, dependencies, approvals/comments.
AIMORAReporting.jl/src/templates.jl Adds template parsing/validation + hashing.
AIMORAReporting.jl/src/renderers.jl Adds Markdown/HTML/Text/JSON/TeX/CSV/SVG/TikZ rendering and deterministic bundle generation.
AIMORAReporting.jl/src/workflow.jl Adds submit/review/comment/approve/freeze/revise/supersede workflow operations.
AIMORAReporting.jl/test/runtests.jl Adds end-to-end test coverage for binding, QA, workflow lifecycle, and deterministic bundles.
AIMORAReporting.jl/examples/complete_report/run.jl Adds a complete example that generates and publishes a frozen deterministic bundle.
AIMORAReporting.jl/README.md Documents design principles, quick start, providers, bundle contents, and testing commands.
AIMORAReporting.jl/check.jl Adds a structural/package-sanity check script (file presence + forbidden dependency text scan).
AIMORAReporting.jl/Makefile Adds convenient check/test/example/clean targets to run package verification locally/CI.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment on lines +49 to +57
elseif value isa AbstractDict
keys_sorted = sort!(String.(collect(keys(value))))
entries = String[]
for key in keys_sorted
original_key = findfirst(candidate -> String(candidate) == key, collect(keys(value)))
key_object = collect(keys(value))[original_key]
push!(entries, canonical_json(key) * ":" * canonical_json(value[key_object]))
end
return "{" * join(entries, ",") * "}"
isempty(strip(binding.units_base)) && _issue!(issues, :error, :missing_unit_base, binding.result_id, "units base is empty")
end

component_ids = String[]
Comment on lines +25 to +26
report.state in (:review, :approved) || throw(ArgumentError("review comments require review or approved state"))
component_ids = Set{String}((report.id,))
"""
function event_preserving_indices(
x::AbstractVector,
y::AbstractVector,
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants