Skip to content

UX: map url tips should suggest fetch command instead of cluster/list #36

@boringdata

Description

@boringdata

Issue Description

After successfully running kurt content map url, the command outputs tips suggesting cluster-urls and list commands, but these aren't the most logical next steps. Users typically want to fetch the content they just discovered.

Current Behavior

After running kurt content map url https://juhache.substack.com:

💡 Tip: Cluster these URLs with kurt content cluster-urls --include "*juhache.substack.com*" (or just kurt content cluster-urls for all)
💡 Tip: Explore URLs by depth with kurt content list --include "*juhache.substack.com*" --max-depth 2

Problem

The typical workflow is: map → fetch → (optionally) cluster/list

  • Users just discovered URLs with map, so they likely want to fetch the content next
  • Clustering and listing are secondary/exploratory actions
  • The tips skip the most important next step (fetching)

Expected Behavior

The tips should prioritize the fetch command:

💡 Next: Fetch content with kurt content fetch --include "*juhache.substack.com*"
💡 Tip: Cluster these URLs with kurt content cluster-urls --include "*juhache.substack.com*" (or just kurt content cluster-urls for all)
💡 Tip: Explore URLs by depth with kurt content list --include "*juhache.substack.com*" --max-depth 2

Or even simpler (showing only the most relevant next step):

💡 Next: Fetch content with kurt content fetch --include "*juhache.substack.com*"
💡 Tip: View discovered URLs with kurt content list --include "*juhache.substack.com*"

Suggested Fix

Update the tip messages in src/kurt/commands/content/map.py:267-278:

# Current code (lines 267-278)
if result["total"] >= 50 and not cluster_urls:
    domain = get_domain_from_url(url, strip_www=True)
    example_pattern = f"*{domain}*"
    
    console.print(
        f'\n[dim]💡 Tip: Cluster these URLs with [cyan]kurt content cluster-urls --include "{example_pattern}"[/cyan] (or just [cyan]kurt content cluster-urls[/cyan] for all)[/dim]'
    )
    console.print(
        f'[dim]💡 Tip: Explore URLs by depth with [cyan]kurt content list --include "{example_pattern}" --max-depth 2[/cyan][/dim]'
    )

Proposed change:

if result["total"] >= 50 and not cluster_urls:
    domain = get_domain_from_url(url, strip_www=True)
    example_pattern = f"*{domain}*"
    
    # Primary next step: fetch content
    console.print(
        f'\n[dim]💡 Next: Fetch content with [cyan]kurt content fetch --include "{example_pattern}"[/cyan][/dim]'
    )
    
    # Secondary tips: explore and organize
    console.print(
        f'[dim]💡 Tip: View discovered URLs with [cyan]kurt content list --include "{example_pattern}"[/cyan][/dim]'
    )
    console.print(
        f'[dim]💡 Tip: Cluster URLs into topics with [cyan]kurt content cluster-urls --include "{example_pattern}"[/cyan][/dim]'
    )

Impact

  • Current: Users may be confused about what to do after mapping (clustering/listing aren't the typical next steps)
  • Improved: Clear guidance on the standard workflow (map → fetch → optional clustering)
  • Better UX for new users learning the command flow

Related Files

  • src/kurt/commands/content/map.py:267-278 - Tip messages after successful map

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions