bwagene1/threatwatch-iran-monitor

GitHub: bwagene1/threatwatch-iran-monitor

这是一个面向企业安全团队的自动化开源情报简报生成流水线,每天从权威媒体获取资讯并利用 Claude AI 生成结构化分析报告。

Stars: 0 | Forks: 0

# ThreatWatch: 伊朗冲突监控 **自动化每日 OSINT 情报简报流水线 — Operation Epic Fury** 每天早上获取 T1/T2 开源情报来源,调用 Claude AI 生成结构化情报简报,运行 QC 审计,并导出可直接交付的 DOCX、PDF、HTML 和 Markdown 格式 — 此外还包括实时 Web 仪表板以及可选的客户端邮件投递。 这是为 [ThreatWatch AI](https://wagenerframeworks.com) 提供支持的流水线,这是一项面向企业安全团队的商业威胁情报订阅服务。 ## 产出内容 每次运行输出: | 格式 | 位置 | 用途 | |--------|----------|-----| | DOCX | `output/docx/` | 样式化的 Word 文档 — 封面页、彩色标注框、表格 | | PDF | `output/pdf/` | 通过 WeasyPrint 生成的可共享客户端就绪 PDF | | HTML | `output/html/` | 自包含的 HTML 简报,无 CDN 依赖 | | Markdown | `output/md/` | 存档副本,可搜索 | | JSON | `output/json/` | 结构化简报 + OSINT 包 + QC 报告 | | 仪表板 | `dashboard/` | 静态 Web 仪表板,自动加载最新简报 | ## 流水线架构 ``` ┌─────────────────────────────────────────────────────────┐ │ OSINT Fetch — T1/T2/T3 RSS + HTTP (feedparser) │ │ CENTCOM · White House · Pentagon · Reuters · AP · CNN │ │ Military Times · Breaking Defense · The War Zone │ │ CSIS · Defense One · SOF News · CISA advisories │ └────────────────────────┬────────────────────────────────┘ │ relevance filter + dedup ▼ ┌─────────────────────────────────────────────────────────┐ │ Claude AI Brief Generation │ │ Structured JSON schema: cfg · execSummary · sections │ │ scorecard · actions · sourceRegistry · sourcesAppendix│ └────────────────────────┬────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────┐ │ Multi-format Export │ │ DOCX (Node.js renderer) · PDF · HTML · Markdown │ └────────────────────────┬────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────┐ │ QC Sub-agent │ │ Schema · content quality · file checks · source rules │ │ Blocks delivery on failure │ └────────────────────────┬────────────────────────────────┘ │ --deliver flag only ▼ Email delivery to client list ``` ## 快速开始 ``` git clone https://github.com/bwagene1/threatwatch-iran-monitor cd threatwatch-iran-monitor cp .env.example .env # fill in your ANTHROPIC_API_KEY bash setup.sh python3 pipeline.py ``` 试运行(无 API 调用,使用存根简报): ``` python3 pipeline.py --dry-run ``` ## 配置 `.env` 密钥(从 `.env.example` 复制): ``` ANTHROPIC_API_KEY=sk-ant-... ANTHROPIC_MODEL=claude-sonnet-4-6 ``` ### DOCX 渲染器 DOCX 输出需要 Node.js 渲染器(`brief-system/`)。如果您单独克隆了此仓库,请执行以下操作之一: - 在 `.env` 中设置 `TW_RENDERER_DIR=/path/to/brief-system`,或者 - 跳过 DOCX — PDF、HTML 和 Markdown 仍可在没有它的情况下生成 渲染器位于父级 `threatwatch-ai` 仓库中。 ### Prompt 文件 `prompts/brief_writer_system.md` — 定义简报 schema 的 Claude 系统 prompt `prompts/brief_starter.json` — JSON schema 模板 您可以通过在 `.env` 中设置 `TW_BRIEF_PROMPT` 和 `TW_BRIEF_STARTER` 来替换为您自己的文件。 ## 仪表板 ``` python3 -m http.server 8755 # 打开 http://localhost:8755/dashboard/ ``` 显示最新简报、过去 7 天的历史记录以及所有导出格式的链接。 ## Cron 设置(每天早上 6 点) ``` crontab -e # 添加: 0 6 * * * /path/to/threatwatch-iran-monitor/run.sh ``` ## 邮件投递 1. 设置 Gmail 应用专用密码:[myaccount.google.com/apppasswords](https://myaccount.google.com/apppasswords) 2. 将 `SMTP_*` 密钥添加到 `.env`(参见 `.env.example`) 3. 编辑 `clients.json` 以添加您的客户端列表 4. 运行并投递: ``` python3 pipeline.py --deliver ``` ## QC Agent 每次运行在记录成功之前都会由 `qc_agent.py` 进行审计: - **Schema:** 执行摘要顺序、记分卡行数(8–12)、actions 结构、源注册表 - **内容:** 无占位符文本、日期正确、无空文本字段 - **源规则:** 仅限 T4 的声明上限为 LOW 置信度;至少有 3 个 HIGH 置信度的声明 - **文件检查:** DOCX > 10KB,PDF > 20KB,HTML > 2KB,Markdown > 500 字符 退出码 0 = 所有关键检查通过。退出码 1 = 阻止投递,提醒操作员。 ## 项目结构 ``` threatwatch-iran-monitor/ ├── pipeline.py # Main orchestrator ├── fetch_osint.py # T1/T2/T3 OSINT fetcher (RSS + HTTP) ├── generate_brief.py # Claude API → structured brief JSON ├── html_renderer.py # Brief JSON → styled self-contained HTML ├── pdf_exporter.py # HTML → PDF (WeasyPrint) ├── md_exporter.py # Brief JSON → Markdown ├── qc_agent.py # QC audit sub-agent ├── product_sheet.py # Generates product one-pager PDF ├── common.py # Shared constants and utilities ├── prompts/ │ ├── brief_writer_system.md # Claude system prompt / brief schema │ └── brief_starter.json # JSON schema template ├── dashboard/ │ └── index.html # Static web dashboard ├── output/ # Generated files (gitignored) ├── logs/ # Pipeline logs (gitignored) ├── clients.json # Client delivery list (sample) ├── setup.sh # One-time installer ├── run.sh # Cron-safe wrapper └── .env.example # Config template ``` ## 依赖项 - Python 3.10+:`anthropic`、`python-dotenv`、`feedparser`、`requests`、`weasyprint` - Node.js(可选,用于 DOCX 输出) 安装:`bash setup.sh` ## 构建者 Brandon Wagener — 陆军退伍军人(第 173 空降旅,情报分析师)、安全运营专业人员、W.P. Carey 商业人工智能硕士候选人、Wagener Framework LLC 创始人。 - GitHub:[@bwagene1](https://github.com/bwagene1) - ThreatWatch AI 服务:[wagenerframeworks.com](https://wagenerframeworks.com) *仅限开源情报。不得重新分发简报内容。本工具及其输出仅供参考。ThreatWatch AI 是 Wagener Framework LLC 的产品。*
标签:AIGC, Claude AI, DOCX, ESC4, Feedparser, HTML, Markdown, MITM代理, OSINT, PDF, Python, RSS订阅, T1/T2情报源, WeasyPrint, Web仪表盘, 人工智能, 企业安全, 去重算法, 地缘政治监控, 威胁情报, 安全运营, 开发者工具, 情报简报, 扫描框架, 数据处理流水线, 文档生成, 无后门, 用户模式Hook绕过, 网络调试, 网络资产管理, 自动化, 质量控制, 逆向工具, 邮件投递, 静态网站