ApertureOscillation
3-pass scope oscillation that holds a question constant while shifting zoom — narrow/tactical, wide/strategic, then synthesis —…
Aggregate several hundred cybersecurity annual reports from CrowdStrike, Mandiant, IBM, Verizon, Microsoft, CISA, OWASP, Wiz, Palo Alto across 19+ categories (threat intel, ransomware, breaches, AppSec, cloud, AI, identity, pentest). Intents: UPDATE, ANALYZE, FETCH. USE WHEN
Claude Code
$ npx -y skills add danielmiessler/lifeos --skill AnnualReports --agent claude-code
Codex
$ npx skills add danielmiessler/lifeos --skill AnnualReports -a codex -y
Cursor
$ npx skills add danielmiessler/lifeos --skill AnnualReports -a cursor -y
Gemini CLI
$ npx skills add danielmiessler/lifeos --skill AnnualReports -a gemini-cli -y
GitHub Copilot
$ npx skills add danielmiessler/lifeos --skill AnnualReports -a github-copilot -y
OpenCode
$ npx skills add danielmiessler/lifeos --skill AnnualReports -a opencode -y
Windsurf
$ npx skills add danielmiessler/lifeos --skill AnnualReports -a windsurf -y
name: AnnualReports
metadata:
short-description: "Find, fetch, update, and analyze cybersecurity annual reports and breach or threat trends. Excludes real-time feeds and live CVE lookup."
version: 1.0.9
evals:
deterministic:
- command: "bun skills/AnnualReports/Tools/UpdateSources.ts --dry-run | grep -Eq 'Total parsed: [1-9]'"
lane: integrity
falsifier: "the upstream README cannot be fetched, or its entry format drifted so the parser yields zero reports"
manual:
reason: "Source freshness and cross-report synthesis depend on the requested live report set and cannot be proven safely from a static fixture."
falsifier: "The delivered analysis omits the consulted reports, attributes a figure to the wrong report year, or leaves a requested fetch unavailable without reporting it."
description: "Aggregate several hundred cybersecurity annual reports from CrowdStrike, Mandiant, IBM, Verizon, Microsoft, CISA, OWASP, Wiz, Palo Alto across 19+ categories (threat intel, ransomware, breaches, AppSec, cloud, AI, identity, pentest). Intents: UPDATE, ANALYZE, FETCH. USE WHEN annual reports, threat reports, vendor reports, ransomware trends, breach stats, DBIR, IBM Cost of Breach, threat landscape, CISO report, CVE trends. NOT FOR real-time threat feeds or live CVE lookup."**Contents:** Ideal State · Anti-criteria · Intent Routing · Tool contract · Data & Config · Gotchas · Examples
Keeps one indexed catalog of several hundred annual cybersecurity reports, fetches the ones that answer a question, and synthesizes trends across vendors with every figure traceable to its source.
**Source:** [awesome-annual-security-reports](https://github.com/jacobdjwilson/awesome-annual-security-reports)
The skill is one intent with three modes, UPDATE, ANALYZE and FETCH, each run through a tool in § Tool contract.
| File | Read when | |------|-----------| | `Setup.md` | first install, the optional PREFERENCES.md, proving the tools work |
| Mode | Trigger | Tool | |------|---------|------| | UPDATE | "update the annual reports", refresh report sources from GitHub | `Tools/UpdateSources.ts` | | ANALYZE | "analyze X reports", trends/insights across vendors | `Tools/ListSources.ts` + content analysis | | FETCH | "download/fetch report Y", specific vendor report | `Tools/FetchReport.ts` |
# Update sources from GitHub
bun run ${LIFEOS_SKILL_DIR}/Tools/UpdateSources.ts
# List all sources (no argument prints every category with its current count)
bun run ${LIFEOS_SKILL_DIR}/Tools/ListSources.ts [category]
bun run ${LIFEOS_SKILL_DIR}/Tools/ListSources.ts --search <term> # match vendor or report name
bun run ${LIFEOS_SKILL_DIR}/Tools/ListSources.ts --vendor <name> # every report from one vendor
# Fetch a specific report (vendor and name match as case-insensitive substrings)
bun run ${LIFEOS_SKILL_DIR}/Tools/FetchReport.ts <vendor> <report-name>
bun run ${LIFEOS_SKILL_DIR}/Tools/FetchReport.ts --url <url> # fetch a page not in the catalog
bun run ${LIFEOS_SKILL_DIR}/Tools/FetchReport.ts --list-cached # list summaries already saved under Reports/Optional user preferences live at `<configRoot>/LIFEOS/USER/CUSTOMIZATIONS/SKILLS/AnnualReports/PREFERENCES.md` (configRoot is `$CLAUDE_CONFIG_DIR` when set, else `~/.claude`). When it exists, apply it over the defaults; when it does not, the defaults stand. The skill needs no account or secret. First install and the proof commands: [Setup.md](Setup.md).
A seed catalog ships with the skill, so ListSources and FetchReport work on a fresh install; UPDATE refreshes it from upstream. If the catalog is deleted, the tools exit with the instruction to run `Tools/UpdateSources.ts`.
⛰️ LifeOS — The universal AI Harness designed to move you from Current to Ideal state in both life and work.
3-pass scope oscillation that holds a question constant while shifting zoom — narrow/tactical, wide/strategic, then synthesis —…
Curated aphorism collection with CRUD: content-based matching, themed search, thinker research, and usage tracking to avoid…
Search and retrieve arXiv academic papers by topic, category, or paper ID — with AlphaXiv-enriched AI-generated overviews. Uses…
Static visual content in 20+ formats (diagrams, infographics, comics, icons, wallpaper) via Nano Banana Pro by default, Nano…
Directs visual quality across images, films, slides, and site captures through a direction council, two vendors' vision judgments…
Assertion-first eval framework: code asserts, calibrated judges, pass@k, A/B comparison, agentic evals, judgment-layer question…
Set up and use 1Password CLI for sign-in, desktop integration, and reading or injecting secrets.
Behavioral guidelines to reduce common LLM coding mistakes. Use when writing, reviewing, or refactoring code to avoid…
Design and build AI agents for any domain. Use when users: (1) ask to "create an agent", "build an assistant", or "design an AI…