Configuration control — airgen-cli 0.6.0, PDF reports, Excel/ReqIF export

Summary

airgen-cli updated from 0.5.1 to 0.6.0. PDF report generator integrated with on-demand generation, Mermaid diagram rendering, and new Excel/ReqIF export endpoints. Protocol updated to v7.0 with split architecture. Multiple data quality fixes.

CLI Changes

airgen-cli 0.6.0

New commands:

CommandPurpose
airgen quality analyze <text>ISO 29148 + EARS quality analysis with --auto-fix
airgen quality score start/status/stopBackground QA scorer for a project
airgen quality draft <input>Generate candidate requirement texts
airgen ai generate <tenant> <project>AI requirement candidate generation
airgen ai candidates/accept/rejectManage AI-generated candidates
airgen export documents --format excelFull document set as Excel (.xlsx)
airgen export documents --format reqifFull document set as ReqIF

Mermaid rendering still requires sanitizer for ==> connectors and style lines.

Infrastructure Changes

PDF report generator

Branded A4 PDF reports generated on demand via /api/pdf/<slug>:

  • Dark cover page with hex code, system name, and stat boxes
  • Decomposition tree with hex codes
  • Mermaid diagrams rendered as high-res PNG (mmdc at 3x scale)
  • Requirements tables grouped by subsystem with V&V and rationale
  • Entity cards with descriptions
  • 5-minute cache, ~40s first generation

Excel and ReqIF export

On-demand export via /api/export/<slug>/excel and /api/export/<slug>/reqif:

  • Full document set with sections, requirements, trace links, and linksets
  • Excel for spreadsheet review, ReqIF for DOORS/Polarion import
  • Generated instantly from live AIRGen data

Report page download bar

Each report page now shows three download buttons: PDF, Excel, ReqIF.

Graph proxy updates

The graph proxy (uht-graph-proxy on port 8788) now handles:

  • GET /api/pdf/<slug> — on-demand PDF generation
  • GET /api/export/<slug>/excel — Excel export
  • GET /api/export/<slug>/reqif — ReqIF export
  • Loads .env and nvm PATH for CLI subprocess access

Data Quality Fixes

Section ID loading bug

All flow files used airgen docs get --json which returns .document.sections[0].id, but the actual response structure is .sections[0].id (no document wrapper). The jq path silently returned null, causing requirements to be created without --section — producing bare refs like SYS-016 instead of SYS-REQS-016.

Fixed in flow-a, flow-b, flow-d. Recreated 20 bare-ref requirements across se-automated-warehouse (8) and se-new-tyne-crossing-appraisal (12).

Diagram stereotype labels

The Mermaid sanitizer matched «component» (Unicode guillemets) but airgen-cli outputs <<component>> (ASCII angle brackets). Updated regex to match both formats and strip the trailing <br/>.

Protocol Changes

v7.0 — Split architecture with dispatcher orchestration

The monolithic 51KB session protocol was split into:

FileSizeContent
protocol-base.md23KBShared across all flows
flow-a-scaffold.md8KBNew system scaffolding
flow-b-decompose.md10KBContinuing decomposition
flow-c-qc.md5KBQC review
flow-d-validate.md3KBValidation
flow-e-post-val.md2KBPost-validation QC

The dispatcher queries DECOMPOSITION_STATUS before invoking Claude and assembles base + flow. Typical session prompt reduced by 35-51%.

Version manifest

ComponentVersionNotes
airgen-cli0.6.0Up from 0.5.1
Session protocol7.0Split architecture
Graph proxy+PDF, +exportThree new endpoints
PDF generatorNewreportlab + mmdc diagrams
Mermaid sanitizerUpdatedASCII stereotype support
← all entries