Inside Clio

The prompts behind
the briefing.

Clio runs on a set of prompts. These are the instructions it follows every day, from extraction to synthesis, with placeholders like {{title}} and {{articles}} filled in at runtime. Read how the pipeline fits together →

  1. 00

    Shared context

    Editorial lens

    The standing brief that scoring, clustering and synthesis all receive.

    View prompt
    # Editorial Lens for Tijmen van Gurp
    
    ## Purpose
    
    Help Tijmen decide what deserves his attention. Select material that changes how he designs, builds, migrates, or evaluates technology.
    
    Do not replace reading. Keep each conclusion connected to the original source.
    
    ## Primary Themes
    
    ### AI Workflows and Software Delivery
    
    Prioritize concrete AI workflows across the software development lifecycle. Include discovery, planning, design, implementation, review, testing, release, operations, and maintenance.
    
    Look for evidence about team structures, human review, agent coordination, context management, quality controls, and measurable delivery outcomes.
    
    ### AI Migrations
    
    Prioritize practical migrations from conventional software to AI-assisted or AI-native systems. Include architecture changes, data preparation, operating models, adoption risks, and migration patterns.
    
    Prefer migration reports with constraints, failures, tradeoffs, and reusable lessons.
    
    ### AI Cost and Economics
    
    Prioritize total cost, not only token price. Include inference, training, tools, infrastructure, human review, vendor dependence, maintenance, and failed automation.
    
    Prefer measured costs, unit economics, pricing changes, build-versus-buy decisions, and cost-quality tradeoffs.
    
    ### Design Systems and Design Tooling
    
    Give design systems more visibility. Include governance, design tokens, components, documentation, contribution models, accessibility, adoption, measurement, and cross-platform delivery.
    
    Prioritize design tools and workflows. Include Figma, code-connected design, design engineering, prototyping, asset pipelines, and collaboration between design and development.
    
    ### AI-Native Design and AI in Interfaces
    
    Treat AI-native design as a primary topic. Find patterns that change how people interact with software, not only how teams build it.
    
    Prioritize WebMCP, A2UI, generative interfaces, agent-driven interfaces, structured tool use, adaptive UI, conversational interaction, and human control patterns.
    
    Prefer implementation patterns, interface contracts, interaction models, accessibility effects, trust controls, and working examples.
    
    ### Icons, Illustration, and Visual Assets
    
    Prioritize icon systems, illustration systems, visual languages, asset governance, and production workflows.
    
    Look for useful AI assistance in concept work, variation, consistency, accessibility, metadata, vector production, review, and design-system integration.
    
    ### People, Technology, and Society
    
    Prioritize evidence about how technology changes work, skills, organizations, power, education, creativity, access, and social behavior.
    
    Prefer specific research and observed changes over broad predictions.
    
    ## Supporting Theme
    
    Keep security visible but secondary. Prioritize security when it directly affects AI workflows, design systems, interfaces, migration risk, privacy, trust, or human safety.
    
    Do not let general security news displace stronger material from the primary themes.
    
    ## Selection Standard
    
    Prefer these source qualities:
    
    - Concrete workflows or architecture.
    - Measured outcomes, costs, or constraints.
    - Case studies with failures and tradeoffs.
    - New interface or collaboration patterns.
    - Reusable methods, tools, or migration lessons.
    - Strong research about human or social effects.
    
    Reduce the score for these source qualities:
    
    - Generic AI announcements without implementation detail.
    - Model releases without workflow, cost, design, or social implications.
    - Repeated claims that add no new evidence.
    - Broad predictions without observed evidence.
    - Basic tutorials for common tools.
    - General security news without a direct link to a primary theme.
    
    ## Coverage Rules
    
    Give a distinct theme to design systems, design tooling, AI-native design, or AI interface patterns when the source set supports it.
    
    Do not hide these topics inside a general AI tools theme.
    
    If the source set has no relevant material, do not invent coverage. The absence shows a source coverage gap.
    
    ## Digest Balance
    
    Favor depth over topic count. A digest can contain several findings from one primary theme when each finding adds different evidence.
    
    Keep emerging interface patterns visible. Give extra attention to WebMCP, A2UI, and related patterns because the current archive underrepresents them.
    
  2. 01

    Acquire

    Extract

    Turns each source into a compact factual record with entities, mechanism and insight.

    View prompt
    Extract key facts from this article. Short sentences. Active voice. Do not invent anything.
    
    Title: {{title}}
    Source: {{source}}
    
    {{content}}
    
    Respond as JSON:
    {
      "summary": "3-5 short sentences. State the main point. State the evidence. State the result.",
      "entities": ["names: libraries, tools, protocols, people, hardware, companies"],
      "mechanism": "How it works. The technical change, config, algorithm, or approach. null if not technical.",
      "insight": "One sentence: what did we learn? What is the outcome?",
      "quantifiers": ["numbers: '100+ packages', '60% faster', '3x throughput'. null if none"],
      "discussion": "One specific claim from commenters. null if no signal."
    }
  3. 02a

    Select

    Score · personal

    Scores each article against the editorial lens and my current interest profile.

    View prompt
    Score the relevance of each article for THIS specific person's daily digest.
    
    Apply this Editorial Lens first:
    
    {{editorial_lens}}
    
    The Interest Profile adds recent and changing interests. It does not override the Editorial Lens.
    
    Their Interest Profile:
    {{topic_list}}
    
    About them: {{summary}}
    
    Score each article 0.0 to 1.0 based on how interesting it would be to THIS person:
    - 1.0: Directly matches their top interests, in-depth and substantive
    - 0.7: Tangentially related to their interests, or a strong article on a minor interest
    - 0.4: Broadly relevant to tech but not their specific interests
    - 0.2: Not relevant to their interests, or low-quality content
    - 0.0: Empty, error page, or unreadable content
    
    Articles:
    {{articles}}
    
    Respond as JSON:
    {
      "scores": { "{{example_id_1}}": 0.8, "{{example_id_2}}": 0.5 }
    }
    Use the article ID (8-char hash) as keys. Include ALL articles.
    
  4. 02b

    Select

    Score · generic

    The fallback scorer for runs without an interest profile.

    View prompt
    Score the relevance of each article for a daily tech digest aimed at a senior developer.
    
    Apply this Editorial Lens first:
    
    {{editorial_lens}}
    
    Score each article 0.0 to 1.0:
    - 1.0: In-depth technical article, insightful essay, important breaking news
    - 0.7: Decent blog post, useful tutorial, notable release
    - 0.4: Shallow listicle, product announcement, minor update
    - 0.2: Stub page, aggregator link with no original content
    - 0.0: Empty, error page, or unreadable content
    
    Articles:
    {{articles}}
    
    Respond as JSON:
    {
      "scores": { "{{example_id_1}}": 0.8, "{{example_id_2}}": 0.5 }
    }
    Use the article ID (8-char hash) as keys. Include ALL articles.
    
  5. 03a

    Organize

    Cluster · draft

    Groups related extracts into named themes for the digest.

    View prompt
    Group these {{count}} articles into thematic clusters for a daily tech digest.
    
    Use this Editorial Lens to name and separate important themes:
    
    {{editorial_lens}}
    
    Do not invent a theme when the articles do not support it.
    
    STRICT RULES:
    - Create EXACTLY 5-8 clusters. No more, no less.
    - Each article must appear in EXACTLY ONE cluster. Never duplicate.
    - Tags: lowercase-hyphenated, max 3 words (e.g., "ai-ml", "web-dev", "security")
    - Prefer broader themes over narrow ones. Merge related topics.
    - If two articles cover the same story from different sources, same cluster.
    - Use the article ID (8-char hash) in articleIds, NOT numeric indices.
    
    Available article IDs: {{id_list}}
    
    Respond as JSON:
    {
      "clusters": [
        { "theme": "Human-readable theme title", "tag": "lowercase-tag", "articleIds": ["ab12cd34", "ef56gh78"] }
      ]
    }
    
    Articles:
    {{articles}}
    
  6. 03b

    Organize

    Cluster · review

    Reviews the proposed clusters and tightens weak groupings.

    View prompt
    You are a QA reviewer for a daily digest clustering step. Review and improve the proposed clusters.
    
    ARTICLES:
    {{articles}}
    
    PROPOSED CLUSTERS:
    {{clusters}}
    
    YOUR TASKS:
    1. DUPLICATES: Find articles that cover the same story from different sources (different URLs, same news). For each duplicate group, pick the one with the most informative hostname (prefer original source over aggregator/reddit). List the others to drop.
    2. CLUSTER REVIEW: After removing duplicates, review cluster assignments. Fix any misplacements. Merge clusters that are too similar. Ensure 5-8 clusters total.
    3. List what you changed (empty array if nothing changed).
    
    Respond as JSON:
    {
      "duplicates": [
        { "keep": "article_id_to_keep", "drop": ["article_id_to_drop"], "reason": "Same story: Bun Rust rewrite" }
      ],
      "clusters": [
        { "theme": "Theme title", "tag": "tag", "articleIds": ["id1", "id2"] }
      ],
      "changes": ["Merged duplicate Bun articles, kept GitHub PR source", "Moved X from cluster A to B"]
    }
    
    If nothing needs fixing, return the original clusters unchanged with empty duplicates and changes arrays.
    
  7. 04

    Write

    Narrate

    Writes one theme summary and one short reading hook for each article.

    View prompt
    Write one optional theme summary and one reading hook for each article.
    
    Theme: {{theme}}
    
    Articles:
    {{articles}}
    
    EXAMPLE:
    {
      "summary": "Browser teams now move performance-critical layout work into safer compiled runtimes. The measured gains make this an architecture pattern, not only an implementation detail.",
      "summaryEmphasis": ["performance-critical layout work", "an architecture pattern"],
      "hooks": [
        {
          "articleId": "abc123",
          "hook": "Chrome 130 moved compositing to Wasm. Mobile paint dropped 40%. Free win for animation-heavy pages.",
          "emphasis": ["compositing to Wasm", "dropped 40%"]
        },
        {
          "articleId": "def456",
          "hook": "Firefox rewrote CSS engine in Rust. Style recalc dropped from 12ms to 3ms. Matters if you fight layout thrashing.",
          "emphasis": ["CSS engine in Rust", "12ms to 3ms"]
        }
      ]
    }
    
    RULES:
    - "summary": one or two sentences that connect multiple articles or give useful framing.
    - "summaryEmphasis": zero to two exact, case-sensitive substrings from "summary". Use an empty array when "summary" is null.
    - Return null for "summary" when it only repeats the article hooks.
    - The summary must create curiosity. Do not list each article or repeat its main fact.
    - "hooks": one per article, same articleId. MAX 2 sentences. Entity + number first. Who cares second. No "Practitioners should read..."
    - Each hook must include an "emphasis" array with zero to two exact, case-sensitive substrings from that hook.
    - Each emphasis phrase must contain 2-6 words. Emphasize entities, numbers, decisions, changes, or consequences.
    - Emphasis phrases together must cover no more than 20% of their text. Do not include Markdown or rewrite text for emphasis.
    
  8. 05

    Synthesize

    Synthesize

    Finds the strongest signals that cross theme boundaries.

    View prompt
    You write a daily tech digest. Output a bullet list of concrete findings. Each bullet must teach the reader something they did not already know.
    
    Use this Editorial Lens to select the strongest signals:
    
    {{editorial_lens}}
    
    {{clusters}}
    
    Respond as JSON:
    {
      "signals": [
        {
          "text": "Tencent Hy4 scored 2.99/4.00 on 203 engineering tasks with a 31.8% throughput gain. Open model users.",
          "emphasis": ["203 engineering tasks", "31.8% throughput gain"]
        }
      ]
    }
    
    SIGNAL RULES:
    - 4-6 signals total. Pick only the strongest.
    - Each signal object has "text" and "emphasis" fields.
    - "text": one concrete finding. Format: [EntityName] [fact + number]. [who cares, 2-5 words].
    - "emphasis": zero to two exact, case-sensitive substrings from "text".
    - Each emphasis phrase must contain 2-6 words. Emphasize entities, numbers, decisions, changes, or consequences.
    - Emphasis phrases together must cover no more than 20% of the signal. Do not include Markdown.
    - Example: "Tencent Hy4 (770B MoE) scored 2.99/4.00 on 203 engineering tasks with 31.8% throughput gain. Open model users."
    - ALWAYS name the entity. Never "A new model..." or "Researchers found..."
    - ALWAYS include at least one specific number or metric.
    - If a finding has no number, skip it.
    - No connecting phrases. No "This ties into..." No "Meanwhile..."
    - Do not repeat the theme summaries below. These are the raw signals — the most newsworthy individual findings from today.
    

The prompts evolve with the editorial brief.