Skip to content
Monitoring
Skill

/discover-patterns

Discover repeated workflow patterns from screen activity and suggest automations

BOOST
From plugin
memorylane
1209 skills
Install
$ npx -y skills add deusXmachina-dev/memorylane --skill discover-patterns --agent claude-code

How it fires

How this skill gets triggered: by you, by Claude, or both.

  • Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.Auto-invocation is when the right skill fires by itself at the right moment, driven by a FLOW.md router and a hook, instead of you invoking it by name. It is the difference between a skill being installed and a skill actually getting used.Read the full definition →
  • You can call itInvoke it directly when you want it.
  • Slash command/discover-patterns

Context preview

The summary Claude sees to decide when to auto-load this skill.

Discover repeated workflow patterns from screen activity and suggest automations

SKILL.md

discover-patterns.SKILL.md
name: discover-patterns
allowed-tools: mcp__memorylane__browse_timeline, mcp__memorylane__search_context, mcp__memorylane__get_activity_details
description: Discover repeated workflow patterns from screen activity and suggest automations

Discover Patterns

Mine the user's screen activity for repeated workflows worth automating — via native integrations, n8n/Make/Zapier, or custom scripts. This command scans timeline data directly, applies aggressive filtering to discard casual activity, and surfaces only patterns with real automation potential.

Before you start

If the `browse_timeline` tool is not available, stop and reply with exactly:

> MemoryLane isn't connected to Claude yet. Open the MemoryLane app, go to **Integrations**, click **Add to Claude**, then restart Claude Desktop and run this again.

Do not suggest plugin settings, Retry, or toggling the plugin.

Instructions

Step 1 — Scan Day by Day

Pattern detection requires **sequential context** — the order of app switches within a day reveals the loops.

Iterate backwards, one day at a time:

1. `browse_timeline(startTime="today", endTime="now", limit=50, sampling="uniform")` 2. `browse_timeline(startTime="2 days ago", endTime="1 day ago", limit=50, sampling="uniform")` 3. Continue for at least 7 days. 4. If < 10 total activities after 7 days, extend to 14 days. 5. If < 5 total activities after 14 days, tell the user there isn't enough data yet. Stop.

After each day's scan, run Step 2 on that batch before moving to the next day.

Step 2 — Identify Candidates

For each day's batch, apply the analysis structure below, then run every candidate through the **Automation Fitness Filter**.

Analysis Per Batch

STEP 1 — App frequency
Which apps appear most? What pairs appear together?

STEP 2 — Semantic clustering
Group activities by what they describe. Are there clusters of similar descriptions?

STEP 3 — Temporal sequences
Within each cluster, do activities follow a consistent order?

STEP 4 — Repetition detection
For each sequence, does it repeat? How many times? Over what time span?

STEP 4.5 — Automation fitness check
Apply the filter below. Discard anything on the DISCARD list.
Only keep candidates that match a REPORT category.

STEP 5 — Variation analysis
Within repeated sequences, what changes between iterations? What stays the same?

STEP 6 — Automation assessment
For the "stays the same" parts — can these be scripted, scheduled, or API-driven?

Automation Fitness Filter

The core question for every candidate: **"Could a native integration, n8n/Make/Zapier workflow, or custom script replace this entire workflow end-to-end?"**

If no, discard it. If yes, classify it into one of the categories below.

**REPORT — these 5 categories only:**

| Category | Badge Color | Signal | Example | | -------------------- | ---------------- | -------------------------------------------- | ------------------------------------- | | **Data Shuttle** | blue `#3b82f6` | Copy-paste structured data between apps | Stripe → Sheets, CRM → billing | | **Reporting Ritual** | purple `#8b5cf6` | Same app sequence on a schedule | Monday: analytics → chart → Slack | | **Review Pipeline** | pink `#ec4899` | Queue → cross-reference → decide | Expense PDF → policy check → approve | | **Data Entry** | orange `#f97316` | Read source, type into forms | Contract email → CRM fields → billing | | **Alert Response** | teal `#14b8a6` | Notification → switch → act → return, 5+/day | Zendesk alert → dashboard → respond |

**DISCARD — explicit noise list:**

  • **Personal messaging** — iMessage, WhatsApp, Telegram, Discord DMs, Signal
  • **Learning/studying** — docs, tutorials, papers, Stack Overflow, course platforms
  • **General browsing** — Reddit, HN, news sites, shopping, social media
  • **Programming** — writing code, debugging, tests, PRs, commits, code review (core creative work, not automatable)
  • **Entertainment** — Spotify, Netflix, YouTube non-work, games
  • **Email/Slack triage** — general inbox checking, message reading (unless it's a trigger for a specific cross-app workflow)
  • **IDE usage alone** — "uses VS Code" or "writes code in Cursor" is too broad
  • **File management** — unless part of a larger cross-app workflow

Maintain a running candidate list across all days. A pattern spotted on multiple days is stronger evidence — merge duplicates and increase confidence.

Step 3 — Confirm Top Candidates

For each candidate with 3+ occurrences:

1. `search_context(query)` — widen to 30 days to verify the pattern holds beyond the scan window. 2. `get_activity_details(ids)` — only for high-confidence candidates where OCR text would reveal automation-relevant specifics (URLs, field names, data being moved). Keep to a minimum.

Step 4 — Present Results as HTML

Rank patterns by **automation impact** — frequency x time per loop x ease of automation.

**Write the HTML to a file** — save it as `pattern-report.html` in the current working directory using the Write tool. Do NOT output raw HTML in your response. After writing the file, tell the user the report has been saved and they can open it. Repeat the pattern card block for each detected pattern.

<div
  style="font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; max-width: 720px; margin: 0 auto; color: #0f172a;"
>
  <!-- HEADER -->
  <div
    style="background: linear-gradient(135deg, #6366f1 0%, #8b5cf6 100%); border-radius: 16px; padding: 32px; margin-bottom: 28px; color: white;"
  >
    <div style="font-size: 24px; font-weight: 800; margin-bottom: 6px; letter-spacing: -0.5px;">
      Pattern Report
    </div>
    <div style="font-size: 14px; opacity: 0.85; line-height: 1.5;">
      {analysis_window} · {total_activities_analyzed} activities analyzed · {pattern_count} patt
Read more
Ships withmemorylane
Get the whole plugin

Other skills on memorylane.