ReportProcesses.java:35 and CarlMetadata.java:163-166 pass a null narrator, so reports generated from the QQQ administration UI persist with narration_state = NOT_REQUESTED. Narration is only attempted on the conversation path (CarlConversation.java:238-246,344-354). The failure path (FocusedReports.java:246-256, CarlService.generateReport:409-421) is correct, but a user of the admin UI never gets narrative text even when a model is configured.
Suggested resolution
Wire the admission-capped runtime into the native report processes with the same sanitized-facts narration and FAILED fallback, or state in the UI that native reports are facts only.
Priority rationale
P2: feature gap between the two entry points.
Filed from the 2026-10-01 real-versus-fake audit of Carl (branch feature/cicd-liquibase-gitops, HEAD 5414d7a, main 1b334d1). Four read-only reviews covered domain and services, QQQ metadata and data model, tests/CI/evidence, and docs/integrations. A local offline build of a Carl copy against the installed foundation 0.5.0-SNAPSHOT is in progress; its result will be added as a comment. Existing issues #3, #4 and #5 (real Monarch accounts, Authentik with real data, CI/CD with Liquibase and ArgoCD) are referenced rather than duplicated.
## Summary
`ReportProcesses.java:35` and `CarlMetadata.java:163-166` pass a `null` narrator, so reports generated from the QQQ administration UI persist with `narration_state = NOT_REQUESTED`. Narration is only attempted on the conversation path (`CarlConversation.java:238-246,344-354`). The failure path (`FocusedReports.java:246-256`, `CarlService.generateReport:409-421`) is correct, but a user of the admin UI never gets narrative text even when a model is configured.
## Suggested resolution
Wire the admission-capped runtime into the native report processes with the same sanitized-facts narration and FAILED fallback, or state in the UI that native reports are facts only.
## Priority rationale
P2: feature gap between the two entry points.
---
Filed from the 2026-10-01 real-versus-fake audit of Carl (branch `feature/cicd-liquibase-gitops`, HEAD `5414d7a`, main `1b334d1`). Four read-only reviews covered domain and services, QQQ metadata and data model, tests/CI/evidence, and docs/integrations. A local offline build of a Carl copy against the installed foundation 0.5.0-SNAPSHOT is in progress; its result will be added as a comment. Existing issues #3, #4 and #5 (real Monarch accounts, Authentik with real data, CI/CD with Liquibase and ArgoCD) are referenced rather than duplicated.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Summary
ReportProcesses.java:35andCarlMetadata.java:163-166pass anullnarrator, so reports generated from the QQQ administration UI persist withnarration_state = NOT_REQUESTED. Narration is only attempted on the conversation path (CarlConversation.java:238-246,344-354). The failure path (FocusedReports.java:246-256,CarlService.generateReport:409-421) is correct, but a user of the admin UI never gets narrative text even when a model is configured.Suggested resolution
Wire the admission-capped runtime into the native report processes with the same sanitized-facts narration and FAILED fallback, or state in the UI that native reports are facts only.
Priority rationale
P2: feature gap between the two entry points.
Filed from the 2026-10-01 real-versus-fake audit of Carl (branch
feature/cicd-liquibase-gitops, HEAD5414d7a, main1b334d1). Four read-only reviews covered domain and services, QQQ metadata and data model, tests/CI/evidence, and docs/integrations. A local offline build of a Carl copy against the installed foundation 0.5.0-SNAPSHOT is in progress; its result will be added as a comment. Existing issues #3, #4 and #5 (real Monarch accounts, Authentik with real data, CI/CD with Liquibase and ArgoCD) are referenced rather than duplicated.Deferred by owner decision (2026-10-04). Leaving this open; it is not scheduled for current work.