# Build a personal AI news digest with a coding skill

> A source-pinned guide to the coding skill's news-digest workflow, with checks for collection, deduplication, filtering, uncertain decisions, links and delivery controls. BIG CHANGE has not run it.

By BIG CHANGE Editorial

Published: 2026-10-19T13:04:34.919Z
Updated: 2026-10-19T13:04:34.919Z
Canonical: https://bigchange.ai/blog/personal-ai-news-digest-coding-skill

![Charcoal illustration of one standing reader by a window looking at three short entries on a tablet, each with a small orange mark.](https://bigchange.ai/api/media/file/personal-news-digest-standing-reader-concept-v2.png)
AI-generated conceptual illustration by BIG CHANGE.

A personal AI news digest needs more than a prompt that summarizes links. It needs a way to collect from sources you may access, recognize an item it has already seen, separate factual cutoffs from judgment, and keep a saved, linked record of what it sent. Cole Medin's [build-signal-engine skill](https://github.com/coleam00/skills/tree/847be0848ae7b997ae4420bc0eac267177a066a2/.claude/skills/build-signal-engine) gives a coding agent instructions to build that system in your own repository. The skill is a build procedure; the resulting code and its behavior depend on your answers, sources, services and tests.

This guide is for someone who already uses Claude Code, controls a project folder, and can decide which feeds or APIs they are allowed to use. You will need access to those sources and credentials for any paid data or model service you choose. The skill files are available under the repository's MIT license; coding-agent usage, source fetching and model calls can still cost money. BIG CHANGE inspected the skill at commit `847be0848ae7b997ae4420bc0eac267177a066a2` and provider documentation. We did not install it, build an engine or run a digest.

## 1. Add the pinned skill to your project

In a separate working folder, clone [Cole Medin's skills repository](https://github.com/coleam00/skills), then check out the pinned commit:

```sh
git clone https://github.com/coleam00/skills.git skills-source
git -C skills-source checkout --detach 847be0848ae7b997ae4420bc0eac267177a066a2
```

Copy the complete `skills-source/.claude/skills/build-signal-engine/` directory into `<your-project>/.claude/skills/build-signal-engine/`. Keep its `references/` and `templates/` subdirectories alongside `SKILL.md`; the instructions refer to those files by relative path. Include the repository's [MIT LICENSE](https://raw.githubusercontent.com/coleam00/skills/847be0848ae7b997ae4420bc0eac267177a066a2/LICENSE) and copyright notice with the copied skill. This project-local copy avoids taking the repository's other skills and keeps the guide tied to a reviewable version.

Open that repository in Claude Code and start a fresh session so it discovers the project skill. Check that `build-signal-engine` appears among available skills, then invoke `/build-signal-engine` with the path of the repository where you want the engine built. Claude Code's [skill documentation](https://code.claude.com/docs/en/skills) describes `.claude/skills/<name>/SKILL.md` discovery and `/skill-name` invocation. If discovery fails, check the directory spelling and that `SKILL.md` is directly inside it before changing any source or provider settings. Inspect the skill and its supporting files before allowing it to write or run code.

## 2. Approve a profile made from your own examples

The skill starts with an interview. Tell the agent what information would change a decision you make, where a real item you missed first appeared, and where you would read the digest. Supply actual items you wanted and items you would have skipped, with links if available. Choose the sources you are permitted to access, factual cutoffs such as age or engagement, the digest length, and the delivery destination. The agent should turn those answers into `PROFILE.md` using `templates/PROFILE.md` and show it to you for approval before building.

Read the source list and the decision questions in that file. A question such as whether an item reports a concrete new development needs to mean something specific for your work. The keep and drop examples become a small test set later. If you have only a few straightforward feeds, consider whether a feed reader or alerts already solve your task; an engine adds moving parts and recurring service calls.

Keep source credentials out of the profile, prompts, committed files and logs. The skill calls for a gitignored environment file loaded by the generated program. You still need to review what fields go to each provider, including whether your interests or source text contain sensitive information.

## 3. Build one permitted source, then check the store

Ask the agent to implement one source end to end before adding the others. For each source, settle the permitted access method: its official feed or API, a provider you selected, or another method allowed by its terms. A source with no permitted automated access stays out. The skill's `references/sources.md` documents source types and their failure cases; it does not grant access rights.

Each collected item should map to the fields in `templates/item_schema.md`: stable `id`, source, title, URL, body, publication time, engagement where available, and metadata. The store also records what filtered the item, the decision result and whether it appeared in a digest. Changelogs need individual dated entries and stable IDs, rather than one changing page treated as one item. The skill suggests SQLite unless you already use another store.

Inspect a real source response and the resulting stored rows. Confirm the IDs and URLs point to the same items on a second collection, and record returned, newly stored and duplicate counts per source. Investigate an unexpected empty response, missing dates, parse errors or a second run that creates the same entries again. Deduplication prevents repeat storage or downstream decisions on the same ID; it does not erase a charge for fetching a paid source again.

## 4. Keep factual filters separate from decisions

Have the generated code apply age, numeric engagement, language, length and already-seen rules as explicit filters. Read the count dropped by each rule and sample the affected items. If a source has already billed you for a row, a later filter cannot refund it. Set a cap on billable source rows for each run and record source rates separately from decision-model and reading-model costs.

For remaining items, the skill proposes one typed decision request per item with the profile's questions together: relevance and whether it reports something new and concrete. Its reference uses TypeSafe's Jev through OpenRouter as an option; a structured-output model is another option. The pinned reference names `typesafe/jev-1.13`. OpenRouter's [October 2026 Jev guide](https://openrouter.ai/blog/insights/what-is-jev/) describes 1.14 and says 1.13 remains available. Keep the pinned version unless you deliberately review and test a change. Jev's decision endpoint is distinct from a chat-completions call. [Earlier BIG CHANGE coverage of Jev](https://bigchange.ai/articles/jev-typesafe-ai-decisions-software-diogo-almeida) explains the model's broader role in software decisions.

Route clear factual or low-relevance drops to a stored reason. Send clear keeps and uncertain items to the reading stage. A failed or malformed decision has no verdict: mark it for inspection or controlled recovery, and never silently hard-drop it. The skill's fallback to reading also needs a cost boundary. If failed calls or an oversized batch would exceed the approved reading budget, hold those items visibly for the reader instead of spending without limit. These are checks to demand of the generated engine, not behavior BIG CHANGE has verified.

Score your own keep/drop examples and a labeled sample of collected items. Review every wanted item the system dropped and change an unclear question or source choice before tuning a threshold. A typed probability can be wrong for your material. Taste or engagement can help rank an item; neither establishes its factual importance.

## 5. Save a linked digest before delivery

The reading model should receive the surviving source-linked items, group related reports and write the brief in the approved profile format. Check that every entry retains a working source URL and accurately distinguishes a minor changelog entry, a release and an unconfirmed claim. Read the digest against the source material; a polished sentence is not evidence that a reported change occurred.

The skill calls for a dated `digests/YYYY-MM-DD.md` file to be saved before email, chat or notes delivery. Confirm the file exists and can be opened even when delivery fails. The saved file and item records give you a way to trace why a story was included. Check that the generated delivery step can retry from that file without refetching or paying for the entire run again.

## 6. Authorize and observe the recurring run

Before registering any automation, ask the agent to show the actual generated engine's invocation and stop procedure, the selected scheduler for your host, the local timezone, destination, credentials used, billable-row cap, run log and duplicate-run protection. Review the exact command the scheduler will execute. The skill names cron, launchd and Windows Task Scheduler as possibilities; it does not supply one universal engine command. Authorize that specific daily schedule only after a manual run has produced a linked file you accept.

Observe a real scheduled run. Compare its per-source counts, filter reasons, decision routes, token and service charges, output path and delivery result with the manual run. Check that a second or overlapping invocation does not produce duplicate effects. If the scheduled job fails, use its log to locate the stage, keep the saved digest if one exists, repair the source, decision or delivery fault, and rerun only the necessary step under the same approved cost limit. Review the actual scheduler's disable command too, so you can stop recurring fetches and charges.

For a week, read the output alongside the sources you care about. Mark missing and noisy items. For a miss, find whether it was absent from collection, filtered by a factual rule, dropped by a decision, or omitted in reading. Change that stage and repeat the check. This shadow week gives you evidence about your own source mix and question wording; it does not certify unattended accuracy.

## The big change

The reusable part of this skill is its separation of collection, stable storage, factual filters, typed judgments and linked reading. A coding agent can assemble those parts around a reader-approved profile. The reader still owns access permissions, examples, spending limits and the choice to start or stop daily delivery. Until the generated system passes the source, duplicate, miss and scheduled-run checks in your environment, it is a build in progress.

## Sources & further reading

- [Cole Medin's pinned build-signal-engine skill](https://github.com/coleam00/skills/tree/847be0848ae7b997ae4420bc0eac267177a066a2/.claude/skills/build-signal-engine) documents the interview and build stages. Its `references/` and `templates/` files specify source mapping, decision routing and digest output; they are instructions, not an independently tested engine.
- [Claude Code skills documentation](https://code.claude.com/docs/en/skills) establishes project-local skill discovery and direct invocation. It does not validate this particular engine.
- [OpenRouter's Jev guide](https://openrouter.ai/blog/insights/what-is-jev/) describes the current decision API and available model versions. Its pricing and examples do not measure the cost or accuracy of a reader's pipeline.
- [The repository's MIT license](https://raw.githubusercontent.com/coleam00/skills/847be0848ae7b997ae4420bc0eac267177a066a2/LICENSE) states the notice that must accompany copies or substantial portions of the skill files.

## Sources

- [Cole Medin's pinned build-signal-engine skill](https://github.com/coleam00/skills/tree/847be0848ae7b997ae4420bc0eac267177a066a2/.claude/skills/build-signal-engine) — is the primary build procedure. Its interview, source, decision and digest references and three templates document the intended sequence, item fields and checkpoints. They do not establish that a generated engine works in a reader's environment.
- [Claude Code's skills guide](https://code.claude.com/docs/en/skills) — establishes the project-local `.claude/skills/<name>/SKILL.md` location, discovery and `/skill-name` invocation. It does not test this skill.
- [OpenRouter's Jev guide](https://openrouter.ai/blog/insights/what-is-jev/) — explains its typed Decisions API and says Jev 1.13 remains available alongside 1.14 as of October 2026. Its examples and prices are provider documentation, not measured results for this digest workflow.
- [The source repository's MIT license](https://raw.githubusercontent.com/coleam00/skills/847be0848ae7b997ae4420bc0eac267177a066a2/LICENSE) — requires its copyright and permission notice to be included with copies or substantial portions of the software.
