# SecurityUpdates

Aggregates and curates security news from six authoritative sources into a ranked...

- Repository: https://github.com/danielmiessler/LifeOS (19669 stars)
- Category: Security
- License: MIT
- Last updated: 2026-10-28
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add danielmiessler/LifeOS --skill SecurityUpdates -g -a claude-code -y`
Codex: `npx skills add danielmiessler/LifeOS --skill SecurityUpdates -g -a codex -y`
Cursor: `npx skills add danielmiessler/LifeOS --skill SecurityUpdates -g -a cursor -y`
Gemini CLI: `npx skills add danielmiessler/LifeOS --skill SecurityUpdates -g -a gemini-cli -y`

## Description

Aggregates and curates security news from six authoritative sources into a ranked, deduplicated digest across Security News, Research, and Ideas, with stateful tracking to avoid re-surfacing seen items. USE WHEN security news, security updates, breaches, sec updates, tldrsec, Krebs, Schneier, weekly security digest, CISO strategy. NOT FOR stack-specific CVE prioritization against your own tech stack (use your own vulnerability-management tooling), or AI industry news (Upgrade NewsDigest).

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# SecurityUpdates

Aggregates security news from six authoritative sources (§ Sources) into a ranked, deduplicated digest of up to 32 items across three categories: Security News, Security Research, and Security Ideas. A per-item record of what each run showed, kept in last-check.json by `Tools/Digest.ts`, avoids re-surfacing seen items, so a weekly run shows only what is new instead of the overlapping stories six sites publish on their own cadences.

## Ideal State

- A run returns at most 32 items, deduplicated across sources, ranked within News, Research and Ideas, each attributed to its source, and none fabricated.
- Nothing surfaced on an earlier run surfaces again, dated or not: every shown item's key is recorded in `MEMORY/STATE/SecurityUpdates-last-check.json` after each successful run, and the next run's candidates are filtered against it by `Tools/Digest.ts` (`Intents/Update.md` § Tool contract).
- Items come only from the configured sources: the six defaults in `sources.json`, swapped or extended through PREFERENCES.md.

## Intent Routing

| Intent | Trigger | File |
|--------|---------|------|
| **Update** | "security updates", "sec updates", "/secupdates", "what's new in security" | `Intents/Update.md` |

**Default:** Run the Update intent.

| File | Read when |
|------|-----------|
| `Setup.md` | first-time setup: the smallest working PREFERENCES.md, accounts (none) and the proof command |
| `Tools/Digest.help.md` | the state filter, recorder and digest check the Update intent runs |

## Data & Config

User customizations, read before each run:
`<configRoot>/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/SecurityUpdates/PREFERENCES.md`
configRoot is `$CLAUDE_CONFIG_DIR` when set, else `~/.claude`.

The rest: https://github.com/danielmiessler/LifeOS/blob/HEAD/LifeOS/install/skills/SecurityUpdates/SKILL.md
