← Blueprints

BLUEPRINT · daily-brief

Daily HN brief

Once a day, reads the Hacker News front page and sends you a three-line brief of what mattered. Keeps every brief in its memory. The control room estimates about $0.02 a month, with a hard cap of $0.30.

Runs
once a day
Leash
required

How it decides

  1. OBSERVE · source rest_api extract
  2. FILTER · gate fast_path_diff
  3. REASON · reason llm_reason · economy tier every tick
  4. ACT · act notify_webhook ●write_state

● = touches the outside world (leashed by default)

What it costs

One economy-tier call a day · ≤ $0.01/day.

Ceiling: budget_usd_per_day: 0.01

What you'll need

WEBHOOK_URL

A model key (Anthropic, OpenAI or xAI) in Settings.

Make it yours

sources.front_page.url
https://hn.algolia.com/api/v1/search?tags=front_page

Full YAML

blueprints/daily-brief.yaml
# Once a day, reads the HN front page, writes a short brief, keeps
# it in state, and sends it to your webhook. One LLM call a day.
blueprint:
  id: daily-brief
  title: Daily HN brief
  description: >-
    Once a day, reads the Hacker News front page and sends you a three-line
    brief of what mattered. Keeps every brief in its memory. Costs about one
    cent a month.
config:
  synth:
    name: Daily brief
    goal: Send me a short daily brief of what mattered on Hacker News.
    schedule_seconds: 86400
  requires_credentials:
    - WEBHOOK_URL
  sources:
    - id: front_page
      primitive: rest_api
      config:
        url: "https://hn.algolia.com/api/v1/search?tags=front_page"
        items_path: hits
        max_pages: 1
        max_items: 30
  transforms:
    - id: titles
      primitive: extract
      config:
        items: $sources.front_page.items
        field: title
  fast_path:
    primitive: fast_path_diff
    inputs:
      current: $tick.started_at
      previous: $state.last_run
  reasoning:
    primitive: llm_reason
    triggered_by: always
    model_tier: economy
    budget_usd_per_day: 0.01
    input: "Today's Hacker News front-page titles: {$transforms.titles.values}"
    output_schema:
      brief: string
  actions:
    - always: true
      primitive: notify_webhook
      config:
        url: $secrets.WEBHOOK_URL
        template: "[Daily brief] {brief}"
    - always: true
      primitive: write_state
      config:
        last_brief: $reasoning.brief
        last_run: $tick.started_at

The YAML's own description line is shown as it ships; the cost sentence above replaces it until the control room's estimate is published.

Install

In the control room

Blueprints → Daily HN brief → Shadow, then Deploy.

To change something first (see Make it yours): View config, copy the JSON, and paste it into + Install a Synth.

With your AI

Ask: "Clone the daily-brief blueprint." It uses caedos_blueprints, then validates, shadows and deploys.