CraftReport is a Python reporting project for turning external datasets and
metrics into reports in Craft applications. The intended product combines live
views, reusable templates, exported files and evidence of what was checked.
The repository directory is named GridDash; the Python package is craftreport.
Development currently centers on the operation kernel: typed operations, capability packages, shared guards and evidence contracts. It is not yet a complete reporting service. All 26 kernel tasks and final installed-system validation are accepted within the synthetic operation scope. The final integration run passed 611 kernel tests and ten fresh installed catalog proofs; hosted CI execution remains unverified. See the kernel task list for current progress and approval metadata for the authorized phase.
Start at the documentation index for current readiness, a quickstart, the roadmap, and the proposed product adoption strategy.
| You want to | Start here |
|---|---|
| Decide whether CraftReport adds value beyond direct GridCraft/app MCP | Why CraftReport |
| Open GridCraft in a browser without building Rust | GridCraft setup |
| Work on the Python kernel | Developer guide |
| Supply providers and host REST/MCP | Kernel host assembly |
| Write a capability package | Capability author contract |
| Understand hosting, MCP, browser sessions and WOPI | Craft app protocols |
| Check planned reporting scope | Reporting requirements |
The GridCraft setup serves the official application archive through a static container. Its WebAssembly file contains the spreadsheet application. Hosting that application does not connect its browser workbook to CraftReport's Python kernel; the protocol guide explains that boundary.
Use CPython 3.12.10 and uv 0.13.0 from the repository root:
uv sync --frozen --group dev
uv run --frozen python scripts/check.py --fast
uv run --frozen pre-commit installOn the Windows development workstation, use uv.exe in place of uv to bypass
the PowerShell wrapper. Dependencies and tool versions are pinned in
pyproject.toml and uv.lock.
The fast command runs Ruff, strict Pyright, size and branching checks, ownership
and import checks, and focused tests. Passing it establishes those checks only.
Run uv.exe run --frozen python scripts/check.py --integration on Windows (uv
elsewhere) for installed-wheel startup, REST/MCP discovery and cleanup checks.
Results appear under artifacts/<run-id>/. Inspect the complete conformance packet
and its scope; a smoke result alone cannot establish conformance. Accepted kernel
evidence is recorded in the
validation assessment.
See the
developer guide for result inspection.
External producers own portfolio calculations and imported metrics. AI may call the planned public interfaces, but it is not required to run reporting operations. Database selection, further app integrations and domain-specific checks remain subject to their own approved scope.
Before expanding a feature, read AGENTS.md, the steering overview, and the owning specification. breadth.toml assigns capability ownership and lifecycle; quality.toml defines engineering requirements. A planned path or an active ledger entry does not mean the feature is implemented or approved for every phase. Keep private data and packs outside public source and artifacts.