diff --git a/.Jules/palette.md b/.Jules/palette.md index 53a14b7..7ea5bd4 100644 --- a/.Jules/palette.md +++ b/.Jules/palette.md @@ -25,6 +25,9 @@ **Learning:** For CLI-based onboarding, providing immediate feedback on execution duration via `time.perf_counter()` and using titled `rich.Rule` components significantly improves the professional feel and clarity of the workflow completion state. **Action:** Incorporate high-resolution execution timing in final result panels and add descriptive titles to terminal rules to better guide users through multi-step onboarding processes. +## 2026-04-03 - [Consistent CLI Aesthetics & Data Integrity] +**Learning:** Using `box.ROUNDED` for `rich.table.Table` components ensures visual consistency with rounded `Panel` elements, creating a more polished and cohesive CLI experience. Furthermore, using `random.sample` instead of `random.choices` for demo data prevents confusing duplicates, which improves the perceived reliability of the workflow being demonstrated. +**Action:** Apply consistent border styling across all container components and prefer unique data generation for tutorial-style outputs to maintain a high-quality user experience. ## 2026-04-02 - [Micro-UX Polish for Demo CLI Scripts] **Learning:** For tutorial-style CLI scaffolds, several micro-UX touches significantly improve the professional feel and onboarding experience: (1) using `random.sample` instead of `random.choices` for unique mock data generation; (2) displaying the total execution duration in the final success panel; and (3) adding descriptive titles to `rich.Rule` components for better visual hierarchy between results and "Next Step" guidance. **Action:** Ensure all demo scripts use unique mock data, provide performance feedback via execution duration, and utilize rule-titles for clear sectional separation. diff --git a/01_getting_started.py b/01_getting_started.py index 707677f..5b7d7d7 100644 --- a/01_getting_started.py +++ b/01_getting_started.py @@ -1,6 +1,7 @@ from prefect import flow, task import random import time +from rich import box from rich.console import Console from rich.markdown import Markdown from rich.panel import Panel @@ -14,6 +15,7 @@ def get_customer_ids() -> list[str]: """Fetch customer IDs from a database or API.""" # Use sorted and zero-padded IDs for better terminal alignment + # Use random.sample to ensure unique IDs in the demo output # Use random.sample to ensure unique customer IDs ids = [f"customer-{n:02d}" for n in random.sample(range(100), k=5)] # Using random.sample ensures unique IDs for a more realistic demo @@ -77,6 +79,7 @@ def main(): show_header=True, header_style="bold blue", show_footer=True, + box=box.ROUNDED, ) table.add_column("Customer ID", style="cyan", footer="Total") table.add_column( diff --git a/02_logging.py b/02_logging.py index c967a05..39d33c1 100644 --- a/02_logging.py +++ b/02_logging.py @@ -2,6 +2,7 @@ from prefect.logging import get_run_logger import random import time +from rich import box from rich.console import Console from rich.markdown import Markdown from rich.panel import Panel @@ -15,6 +16,7 @@ def get_customer_ids() -> list[str]: """Fetch customer IDs from a database or API.""" # Use sorted and zero-padded IDs for better terminal alignment + # Use random.sample to ensure unique IDs in the demo output # Use random.sample to ensure unique customer IDs ids = [f"customer-{n:02d}" for n in random.sample(range(100), k=5)] # Using random.sample ensures unique IDs for a more realistic demo @@ -86,6 +88,7 @@ def main(): show_header=True, header_style="bold blue", show_footer=True, + box=box.ROUNDED, ) table.add_column("Customer ID", style="cyan", footer="Total") table.add_column(