Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 3 additions & 3 deletions .Jules/palette.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,6 +36,6 @@
**Learning:** Using 'bold blue' for all structural components (Panels, Rules, and instructional text) creates a strong, consistent visual hierarchy and improves accessibility by ensuring sufficient contrast. Applying `footer_style="bold"` in `rich.table.Table` definitions instead of inline markup maintains cleaner code and consistent visual weight for summary data.
**Action:** Standardize on `bold blue` for CLI structural elements and use explicit `footer_style` properties in tables to ensure high-contrast, professional-grade terminal interfaces.

## 2026-04-05 - [Prefect UI Observability & Result Polish]
**Learning:** Enhancing the Prefect dashboard experience via explicit `name` and `task_run_name` (with variable interpolation) metadata significantly improves observability and creates a more professional developer experience. Additionally, standardizing result visual cues (like '✨' or '📊' prefixes and success emojis in table footers) provides consistent psychological closure for workflow execution.
**Action:** Use descriptive Prefect metadata for all flows and tasks, and ensure final terminal results use consistent iconography and high-contrast styling.
## 2026-04-15 - [Prefect Traceability & Terminal Scanability]
**Learning:** In orchestration-based scaffolds, providing human-readable names and dynamic run names (e.g., `process-{customer_id}`) for tasks significantly improves the observability and debugging experience in the dashboard. Highlighting key numeric metrics in the CLI using consistent secondary colors (like `bold cyan`) helps users quickly parse execution outcomes.
**Action:** Always provide descriptive `name` parameters for flows and tasks, use variable interpolation in `task_run_name` for mapped tasks, and use consistent highlighting for numeric values in terminal output.
18 changes: 7 additions & 11 deletions 01_getting_started.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,7 @@
console = Console()


@task(name="Fetch Customers")
@task(name="Fetch Customer IDs")
@task(name="Fetch Customer Data")
def get_customer_ids() -> list[str]:
"""Fetch customer IDs from a database or API."""
# Use sorted and zero-padded IDs for better terminal alignment
Expand All @@ -21,17 +20,15 @@ def get_customer_ids() -> list[str]:
return sorted(ids)


@task(name="Process Customer", task_run_name="Processing {customer_id}")
@task(name="Process Customer", task_run_name="Process {customer_id}")
@task(name="Process Customer", task_run_name="process-{customer_id}")
def process_customer(customer_id: str) -> str:
"""Process a single customer."""
# Add a brief pause to make the processing state visible in the UI
time.sleep(0.1)
return f"Processed {customer_id}"


@flow(name="Getting Started", log_prints=True)
@flow(name="Getting Started Flow", log_prints=True)
@flow(name="Getting Started Workflow", log_prints=True)
def main():
"""
### 🚀 Getting Started with Prefect
Expand Down Expand Up @@ -86,7 +83,7 @@ def main():
table.add_column(
"Status",
style="green",
footer=f"{len(results)} Processed",
footer=f"{len(results)} Processed",
footer_style="bold",
)

Expand All @@ -99,10 +96,9 @@ def main():

console.print(
Panel.fit(
f"[bold green]✨ Successfully processed {len(results)} customers in {duration:.2f}s![/bold green]",
title="✨ Result",
title="✨ Workflow Results",
border_style="bold blue",
f"[bold green]✨ Successfully processed [bold cyan]{len(results)}[/bold cyan] customers in [bold cyan]{duration:.2f}s[/bold cyan]![/bold green]",
title="Result",
border_style="green",
)
)

Expand Down
18 changes: 7 additions & 11 deletions 02_logging.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@
console = Console()


@task(name="Fetch Customers")
@task(name="Fetch Customer IDs")
@task(name="Fetch Customer Data")
def get_customer_ids() -> list[str]:
"""Fetch customer IDs from a database or API."""
# Use sorted and zero-padded IDs for better terminal alignment
Expand All @@ -22,8 +21,7 @@ def get_customer_ids() -> list[str]:
return sorted(ids)


@task(name="Process Customer", task_run_name="Processing {customer_id}")
@task(name="Process Customer", task_run_name="Process {customer_id}")
@task(name="Process Customer", task_run_name="process-{customer_id}")
def process_customer(customer_id: str) -> str:
"""Process a single customer."""
logger = get_run_logger()
Expand All @@ -34,8 +32,7 @@ def process_customer(customer_id: str) -> str:
return f"Processed {customer_id}"


@flow(name="Logging Guide", log_prints=True)
@flow(name="Logging Demo Flow", log_prints=True)
@flow(name="Logging Workflow", log_prints=True)
def main():
"""
### 📊 Logging with Prefect
Expand Down Expand Up @@ -95,7 +92,7 @@ def main():
table.add_column(
"Status",
style="green",
footer=f"{len(results)} Processed",
footer=f"{len(results)} Processed",
footer_style="bold",
)

Expand All @@ -108,10 +105,9 @@ def main():

console.print(
Panel.fit(
f"[bold green]✨ Successfully processed {len(results)} customers with detailed logging in {duration:.2f}s![/bold green]",
title="📊 Result",
title="📊 Workflow Results",
border_style="bold blue",
f"[bold green]✨ Successfully processed [bold cyan]{len(results)}[/bold cyan] customers with detailed logging in [bold cyan]{duration:.2f}s[/bold cyan]![/bold green]",
title="Result",
border_style="green",
)
)

Expand Down
Loading