[delight] User Experience Analysis Report - 2026-08-02 #49803
Closed
Replies: 1 comment
|
This discussion has been marked as outdated by Delight. A newer discussion is available at Discussion #50018. |
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:
Overall Quality: Professional overall, with one high-impact documentation defect found.
Key Finding:
schedule-syntax.md— the reference doc that teaches users the schedule syntax — repeatedly shows YAML code blocks with duplicateschedule:keys under a singleon:map. This is invalid YAML; only the last key survives on parse, silently discarding all preceding examples if copy-pasted as shown.Quality Highlights ✅
Example 1: Clear typo-suggestion error messages
pkg/workflow/event_validation.goValidateEventTypesfunction gives precise, actionable "Did you mean" suggestions using Levenshtein distance, and thoughtfully avoids false positives for new/unknown GitHub event names by only flagging close matches. Well documented with a clear file-level comment explaining the design rationale."unknown event type %q in 'on:' section.\n\nDid you mean: %s?\n\nValid event types include: %s\n\nSee: https://docs.github.com/..."(line 168-173)Example 2: Quick Reference table in schedule-syntax.md
docs/src/content/docs/reference/schedule-syntax.mdImprovement Opportunities 💡
High Priority
Opportunity 1: Invalid YAML duplicate keys in schedule-syntax.md
docs/src/content/docs/reference/schedule-syntax.mdschedule: ...lines stacked directly under oneon:map, like:schedule:line takes effect (or a strict parser rejects the document outright). The doc presents these as if all variants apply simultaneously, but they are meant to be mutually exclusive, alternative single-line examples.on:blocks (or comment out all but one active line with clear "// Option A / Option B" style annotations), consistent with how the "Fixed Schedules" and "Multiple Schedules" sections already correctly present single valid blocks.Files Reviewed
Documentation
docs/src/content/docs/blog/2026-01-13-meet-the-workflows-security-compliance.md- Rating: ✅docs/src/content/docs/reference/schedule-syntax.md- Rating:Workflow Messages
.github/workflows/daily-byok-ollama-test.md- Rating: ✅ (clear, concise status messages).github/workflows/smoke-copilot-aoai-apikey.md- Rating:Validation Code
pkg/workflow/event_validation.go(tested viaevent_validation_test.go) - Rating: ✅Metrics
🎯 Actionable Tasks
Task 1: Fix Invalid YAML Examples in Schedule Syntax Reference
File to Modify:
docs/src/content/docs/reference/schedule-syntax.mdCurrent Experience
Several code blocks stack multiple
schedule:lines under oneon:key to show variants, e.g. (lines 54-56):This pattern repeats in the "Daily with Time Constraints" (66-74), "Hourly Schedules" (82-84), "Interval Schedules" (94-98), "Weekly Schedules" (106-109), "Weekly with Time Constraints" (117-119), "Bi-weekly and Tri-weekly Schedules" (125-127), and "UTC Offset Support" (157-161) sections.
Quality Issue
Design Principle: Trust and Reliability — documentation must be accurate and safe to copy-paste.
YAML mappings cannot contain duplicate keys. A user who copies one of these blocks verbatim either triggers a parse error in strict YAML parsers or silently loses all schedule variants but the last one defined. Nothing in the surrounding text warns that only one line should be used at a time.
Proposed Improvement
Replace each stacked block with either (a) separate single-line
on:blocks per variant, or (b) one block with only the first variant active and the rest shown as YAML comments demonstrating alternate syntax, e.g.:Before:
After:
Why This Matters
/gh-aw/reference/triggers/and used by every workflow author configuring schedules.Success Criteria
docs/src/content/docs/reference/schedule-syntax.mdonlyschedule:keys under a singleon:mapScope Constraint
docs/src/content/docs/reference/schedule-syntax.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