newsletter-summary — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited newsletter-summary (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
此技能的目標是協助使用者抓取未讀的電子報,由 AI 進行內容摘要,產出 Markdown 報表,並更新信件狀態。此流程需「反覆迭代」直到所有未讀信件皆被處理完畢。
前置需求:使用本技能前,確認已可使用gwsCLI(透過gws-gmail技能)。如需驗證或瞭解全域旗標,請先閱讀../gws-shared/SKILL.md。
gws-gmail 技能與 gws CLI 抓取信件,不需額外撰寫 Python 腳本。label:newsletter is:unread。gws gmail users messages list --params '{"userId": "me", "q": "label:newsletter is:unread", "maxResults": 10}'⚠️ 若沒有找到任何未讀信件,表示處理已全數完畢,請跳至「步驟 3」產出最終摘要。
取得每封信件的完整內容(含 From、Subject 標頭):
# 使用 +read helpers 指令,自動處理 HTML 轉純文字與 Base64 解碼
gws gmail +read --id [MESSAGE_ID] --headers標頭完整性檢查:From 與 Subject 欄位為必要資訊,用於產出正確的「來源」欄位與輸出檔案名稱。若輸出被截斷,請重新嘗試或調整指令以確保擷取完整標頭。
提取信件的標題與「純文字」內文(過濾不必要的 HTML 標籤與雜訊)。
依照以下設定對每封信件進行摘要。若一批次包含多封電子報,請務必逐一針對每一封產生獨立且完整的摘要,不可合併不同信件的重點。
摘要系統設定(System Prompt):
你是一位「高精準電子報摘要專家」。你的核心職責是精確擷取電子報中的所有關鍵資訊,並進行嚴謹的交叉核對,確保產出的摘要 100% 基於原文,絕不產生幻覺或猜測未提供的資訊。
Instructions:
Constraints:
⚠️ 資訊免責聲明 中明確標示:「此封電子報原文為精簡預告版,完整內容需透過原文連結閱讀,摘要僅反映信件中可見的有限資訊。」並如實呈現有限的摘要,不需強行補全不存在的欄位。📄 完整的輸出格式模板請參閱 assets/output_template.md(含欄位說明與檔案命名規則)。🎯 產生「AI 分析」區塊前,必須遵照 `assets/output_template.md` 中的指示讀取data/goals.md與data/user_preferences.md(若存在)。
針對「每一封」電子報,嚴格依照模板格式獨立產生內容。確保每封信件產出獨立完整的 Markdown 檔案,不可合併不同信件的重點。
將本批次中每一封電子報的摘要獨立寫入一個 Markdown 檔案,路徑與命名規則見 assets/output_template.md。確保保留每個區塊的完整欄位,寫入時嚴禁省略任何欄位。
將本封電子報的 AI 分析建議追加至 data/suggestions_pending.md。使用以下格式:
---
### YYYY-MM-DD | Newsletter | [標題](原文連結)
- 🏷️ {分類} | 💎 {價值評分} | ⚡ {可行動性} | 🎯 {決策建議}
- 📋 建議:{建議下一步}
- 📄 [報告](file:///absolute/path/to/report.md)若 data/suggestions_pending.md 不存在,先建立檔案並寫入 # 📋 Pending Suggestions 標題。
立即將這批信件標記為已讀並封存(同時移除 UNREAD 與 INBOX 標籤),避免重複抓取並保持收件匣整潔:
gws gmail users messages modify --params '{"userId": "me", "id": "[MESSAGE_ID]"}' --json '{"removeLabelIds": ["UNREAD", "INBOX"]}'⚠️ 操作安全性:在標記為已讀前,務必確認已成功產出該信件的摘要檔案。
重複執行「步驟 1」,抓取下一批信件進行分析,直到搜尋不到未讀信件為止。
任務完成後,在對話框中向用戶報告:
./reports/Newsletter_YYYY_MM_DD/)| 操作 | 指令 |
|---|---|
| 搜尋未讀電子報 ID | gws gmail users messages list --params '{"userId": "me", "q": "label:newsletter is:unread", "maxResults": 10}' |
| 讀取信件內文與標頭 | gws gmail +read --id [MESSAGE_ID] --headers |
| 標記已讀並封存 | gws gmail users messages modify --params '{"userId": "me", "id": "[MESSAGE_ID]"}' --json '{"removeLabelIds": ["UNREAD", "INBOX"]}' |
📋 Changelog: See docs/workflow/newsletter_summary.md for the full version history.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.