# dev-brief

Chained brief. A changelog feed and a Hacker News keyword watch, merged into one note.

Category: Developer monitoring. Allow `blog.rust-lang.org, hn.algolia.com`.
Chained. Sub-pipes: [changelog-rss-diff](https://asipipes.com/pipes-library/changelog-rss-diff), [hn-keyword-watch](https://asipipes.com/pipes-library/hn-keyword-watch).


Updated 2026-10-17. HTML: https://asipipes.com/pipes-library/dev-brief

## CLI

```
pipes run examples/dev-brief.pipe.yaml
```

## MCP call

```json
{
  "name": "pipe__dev-brief",
  "arguments": {}
}
```

## Pipe file

`examples/dev-brief.pipe.yaml`

```yaml
pipes: 0
name: dev-brief
version: 0.1.0
description: Chained brief. A changelog feed and a Hacker News keyword watch, merged into one note.
permissions:
  network: [blog.rust-lang.org, hn.algolia.com]
inputs:
  type: object
  properties:
    feed:
      type: string
      format: uri
      default: https://blog.rust-lang.org/feed.xml
    keyword:
      type: string
      minLength: 2
      default: rust
  required: [feed, keyword]
outputs:
  type: object
  properties:
    text: { type: string }
    count: { type: integer }
  required: [text, count]
output:
  text: "${steps.digest.text}"
  count: "${steps.digest.count}"
steps:
  - id: changelog
    block: pipe:changelog-rss-diff@^0.1
    with:
      feed: "${inputs.feed}"
  - id: stories
    block: pipe:hn-keyword-watch@^0.1
    with:
      keyword: "${inputs.keyword}"
      hits: 5
  - id: rows
    block: merge
    with:
      lists:
        - - kind: changelog
            text: "${steps.changelog.text}"
        - - kind: stories
            text: "${steps.stories.text}"
  - id: digest
    block: format
    in: "${steps.rows}"
    with:
      header: "Dev brief\n\n"
      item_template: "## ${item.kind}\n${item.text}"
      separator: "\n\n"
  - id: print
    block: emit_stdout
    in: "${steps.digest.text}"
    with: { format: text }
```
