[delight] User Experience Analysis Report - 2026-09-14 #60864
Closed
Replies: 1 comment
|
This discussion has been marked as outdated by Delight. A newer discussion is available at Discussion #61155. |
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Executive Summary
Today's analysis focused on:
docs/src/content/docs/blog/2026-09-14-weekly-update.md,docs/src/content/docs/gallery/metrics-analytics.md)smoke-pydantic.md,pr-sous-chef.md)pkg/workflow/safe_outputs_needs_validation.go)gh-awbinary could not be built in this sandbox (Go toolchain download togo1.26.8was blocked by network policy), so no CLI help-text sample could be captured.Overall Quality: Generally professional. Workflow message blocks are consistent and appropriately branded; the gallery doc is clear and concise. The one gap worth fixing is in a validation error message that omits the actual list of valid job names it is asking the user to choose from.
Key Finding:
validateSafeOutputsNeedsFieldinpkg/workflow/safe_outputs_needs_validation.gotells users "Expected one of the workflow's custom jobs" but never lists what those jobs actually are, forcing the user to search their own frontmatter to find validneedstargets.Quality Highlights ✅
Example 1: Consistent, branded workflow messages
.github/workflows/smoke-pydantic.mdmessagesblock uses a consistent 🐍 emoji, informative run-state text, and a footer that credits the engine — professional and easy to scan without being noisy.run-success: "🐍 [{workflow_name}]({run_url}) Pydantic AI delivered."Example 2: Concise, scoped documentation
docs/src/content/docs/gallery/metrics-analytics.mdnoopsafe output") and links to three relevant reference pages instead of duplicating their content.noopsafe output, so collection cannot directly mutate issues or pull requests."Improvement Opportunities 💡
High Priority
Opportunity 1: Error message omits the actual list of valid job names
pkg/workflow/safe_outputs_needs_validation.go"safe-outputs.%s: unknown job %q. Expected one of the workflow's custom jobs. Example: safe-outputs.%s: [secrets_fetcher]"— the example job namesecrets_fetcheris a hardcoded placeholder, not derived from the user's workflow.customJobsmap of every valid target (line 33-40) but discards it after computing the count for a debug log — the actual valid job names are never surfaced to the user in the error.needsjob name, they get a generic message with an unrelated example job name instead of the list of jobs that actually exist in their own workflow, forcing a manual scan through the frontmatter to self-diagnose.customJobsinto the error message so users see their actual available options.Medium Priority
Opportunity 2: Metrics gallery example lacks an output sample
docs/src/content/docs/gallery/metrics-analytics.mdmetrics/YYYY-MM-DD.json" but never shows what that snapshot looks like.metrics/2026-01-15.jsonsnapshot showing 2-3 representative fields.Files Reviewed
Documentation
docs/src/content/docs/blog/2026-09-14-weekly-update.md- Rating: ✅docs/src/content/docs/gallery/metrics-analytics.md- Rating:CLI Commands
gh-aw)Workflow Messages
.github/workflows/smoke-pydantic.md- Rating: ✅.github/workflows/pr-sous-chef.md- Rating: ✅Validation Code
pkg/workflow/safe_outputs_needs_validation.go- Rating:Metrics
🎯 Actionable Tasks
Here are 2 targeted improvement tasks, each affecting a single file:
Task 1: List actual valid job names in the safe-outputs
needsvalidation errorFile to Modify:
pkg/workflow/safe_outputs_needs_validation.goCurrent Experience
When a workflow references an unknown job in
safe-outputs.needs, the compiler returns an error naming a hardcoded example job (secrets_fetcher) that may not exist anywhere in the user's workflow, instead of the actual job names that would be valid. The valid job set is already computed in-function (customJobs, lines 33-40) but never surfaced.Quality Issue
Design Principle: Trust and Reliability
Users must manually re-read their own frontmatter's
jobs:section to figure out what a validneedstarget looks like, adding an unnecessary diagnostic step to a compile error that could have been self-explanatory.Proposed Improvement
Sort the
customJobsmap keys and include them in both error messages so the message is self-contained.Before:
After:
(Requires adding
"sort"and"strings"to the existing import block; the reserved-job-name branch above it can be left as-is or updated similarly for consistency.)Why This Matters
safe-outputs.needstypo or stale reference occurs during workflow compilation, which is common when jobs are renamed or removed.Success Criteria
pkg/workflow/safe_outputs_needs_validation.goonlyScope Constraint
pkg/workflow/safe_outputs_needs_validation.goTask 2: Add a sample output snapshot to the metrics-analytics gallery doc
File to Modify:
docs/src/content/docs/gallery/metrics-analytics.mdCurrent Experience
The doc explains that the workflow writes "a compact JSON snapshot to
metrics/YYYY-MM-DD.json" (line ~35) but gives no indication of its structure, leaving readers to infer the schema or run the workflow to find out.Quality Issue
Design Principle: Documentation Quality — practical examples that reflect real use cases
Gallery pages exist to help readers quickly decide whether a pattern fits their needs; without a sample of the output, readers can't evaluate whether the snapshot format meets their downstream analysis needs (e.g., a dashboard or another workflow consuming this data).
Proposed Improvement
Add a short fenced JSON example directly after the paragraph describing repo memory, showing a minimal but representative snapshot.
Before:
After:
Why This Matters
Success Criteria
docs/src/content/docs/gallery/metrics-analytics.mdonlyScope Constraint
docs/src/content/docs/gallery/metrics-analytics.mdWarning
Firewall blocked 1 domain
The following domain was blocked by the firewall during workflow execution:
storage.googleapis.comTo allow these domains, add them to the
network.allowedlist in your workflow frontmatter:See Network Configuration for more information.
All reactions