Skip to content
scsiwyg
sign insign up
get startedmcpcommunityapiplaygroundswaggersign insign up
project-state·New: Styled .docx + .xlsx Baseline Report Bundles28 Apr 2026David Olsson
project-state

New: Styled .docx + .xlsx Baseline Report Bundles

#release#reports#docx#xlsx#skills

David OlssonDavid Olsson

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:

#DocumentFormat
00Baseline Reports Index.docx
01Project Tracker v1.0.xlsx (8 sheets)
02Project Plan and Timeline.docx
03Risk Register.docx
04Milestone Detailed Specs.docx
05Architecture Overview.docx
06Roadmap 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.

# 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 · Reports: Baseline Reports page

Share
𝕏 Post