← All posts
New: Styled .docx + .xlsx Baseline Report Bundles

New: Styled .docx + .xlsx Baseline Report Bundles

April 28, 2026releasereportsdocxxlsxskills
# New: Styled .docx + .xlsx Baseline Report Bundles **v2.0.1** closes the biggest gap in the v2.0 release: proper Office document output. The skill suite has always claimed to produce `.docx` SC packs and `.xlsx` claim forms — but there was no rendering engine. Reports came out as markdown. Fine for Slack and blogs; not fine for steering committees, funders, or anyone who expects a Word document with styled tables and a Gantt chart. ## What shipped **`project-doc-suite-generator`** — a new P2 skill that reads `.project-state/` and renders a complete baseline report bundle: | # | Document | Format | |---|----------|--------| | 00 | Baseline Reports Index | .docx | | 01 | Project Tracker v1.0 | **.xlsx** (8 sheets) | | 02 | Project Plan and Timeline | .docx | | 03 | Risk Register | .docx | | 04 | Milestone Detailed Specs | .docx | | 05 | Architecture Overview | .docx | | 06 | Roadmap and KPIs | .docx | The tracker workbook has 8 sheets: **Home, Dashboard, Milestones, Deliverables, Risks, Phases, Monthly Gantt, Dependencies, and Legend** — with color-coded status cells, navy header rows, alternating row shading, and format-appropriate tab colors. The `.docx` files use consistent styling: Calibri throughout, navy headings, styled tables with white-on-navy headers and alternating gray rows, bold inline field labels, scoring matrices (risk register), and version history tracking. ## How it works The generator reads every entity in `.project-state/` — milestones, risks, phases, decisions, deliverables, the reporting matrix — and renders styled documents using `python-docx` and `openpyxl`. No templates to maintain. No manual formatting. The reports are views of state. ```bash # Generate a dated baseline bundle python3 scripts/generate-baseline-reports.py --date 2026-04-28 # Output: .project-state/reports/baseline/Baseline-Reports-2026-04-28/ ``` The script auto-detects `.project-state/` by walking up from cwd. Supports `--date`, `--output-dir`, and `--state-dir` overrides. ## Wired into the orchestrator The reporting matrix now includes a `baseline-report-bundle` entry: ```yaml - id: baseline-report-bundle stakeholder_group: internal.team report: "Baseline report bundle (docx + xlsx)" cadence: { kind: event-driven, trigger: "phase-transition, milestone-completion, on-demand" } format: docx+xlsx surface: website generator: project-doc-suite-generator ``` The orchestrator's new `baseline` routine triggers generation at phase transitions and milestone completions. Reports land in a dated directory (`Baseline-Reports-YYYY-MM-DD/`) and get copied to the website's `public/downloads/baseline/` for static serving. ## Quality standard This matches the quality bar set by production projects. The ai26.10 consortium project ships 15+ styled Office documents as its baseline pack. project-state now generates equivalent output — from state, automatically, on every significant event. ## What's next The same rendering primitives will be shared with `project-status-reporter` for SC packs and final reports. The non-existent "docx skill" reference in the status reporter is now replaced with actual `python-docx` rendering. --- **Download:** [project-state v2.0.1](https://project-state-docs.vercel.app/downloads/project-state.zip) · **Reports:** [Baseline Reports page](https://project-state-docs.vercel.app/reports/)