agentsclimarketplace

Social media intelligence tw

Skill richardvt/claude-skills-journalism-tw/journalism-core-tw/skills/social-media-intelligence-tw

台灣在地化 Claude Code journalism skills:政資法、查核、OSINT、AI 味清理、編務、資料新聞與投稿 pitch。

Install
npx -y skills add richardvt/claude-skills-journalism-tw --skill social-media-intelligence-tw

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

2 things to look at

  • no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
  • 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

台灣新聞社群媒體情報與 OSINT 工作流程 (繁體中文/台灣專用版,對應 upstream social-media-intelligence 的美國版)。涵蓋:跨平台即時監測 (台灣場景:Threads/PTT/Dcard/LINE/FB/X/TikTok)、帳號真實性分析、敘事追蹤、協同操作偵測、台灣資訊作戰研究方法 (DoubleThink Lab、IORG)、2024 大選境外干預案例、平台研究 API (Meta Content Library、X 付費 API、TikTok Research API、Bluesky Jetstream)、Bellingcat / WITNESS 等國際工具、法律風險 (《選罷法》§104 加重深偽、《社維法》§63 散布謠言、《刑法》§310)、倫理規範。追蹤協同操作、跨平台敘事擴散、突發新聞社群監測、調查報導 OSINT 時觸發。調查記者、查核員、跨平台追蹤研究員必備。

SKILL.md

34.6 KB, ~13.6k tokens by cl100k_base, as published. Nobody here has run it

台灣新聞社群媒體情報工作流程

跨平台監測、敘事追蹤、調查協同操作之系統性方法,並依台灣社群生態與法律框架在地化。

source-verification-tw 互補:

  • source-verification-tw:單一帳號或內容之真偽驗證(SIFT、反向圖搜、C2PA、深偽偵測)
  • social-media-intelligence-tw:多帳號、多平台之模式偵測(協同操作、敘事追蹤、影響力作戰)

偵測單一帳號偽造 → 用 source-verification-tw;偵測 100 個帳號協同行為 → 用本 skill。


何時使用

  • 追蹤一則新聞跨平台之擴散路徑
  • 調查可疑之協同無真實性行為(Coordinated Inauthentic Behavior, CIB)
  • 突發新聞時跨多個平台即時監測
  • 分析帳號網絡與關係
  • 偵測機器人活動與操弄行動
  • 為數位調查建立證據鏈
  • 在內容被刪除前封存

使用邊界與 ToS guardrails

  • 只處理公開內容或已取得明確授權的資料;私人群組、私訊、封閉社團需先經編輯 / 法務審查。
  • 不繞過登入、付費牆、CAPTCHA、robots、速率限制或平台明示禁止的存取方式。
  • 優先使用官方 API、研究存取、授權資料商或人工取樣;第三方工具需確認授權與資料來源。
  • 本 skill 的 Python 區塊是資料結構與分析模式示例,不是授權爬取任何平台的許可。
  • 報告中記錄資料取得方式、時間範圍、平台限制與 last_checked 日期。

一、台灣資訊作戰生態速覽

詳細的研究機構介紹見 source-verification-tw §七。本節聚焦方法論

主要威脅來源(2026 年 5 月)

來源特徵主要研究者
中國國家影響力作戰AI 生成帳號、GoLaxy 系統、跨平台協同;偽裝台灣居民DoubleThink Lab、IORG
TikTok 演算法推播偏中政治內容、青少年認知重構IORG 2025 報告
WeChat 視頻號台商、新住民社群為入口DoubleThink Lab 報告
選舉期境外干預2024 大選深偽影片、AI 仿聲調查局、台灣事實查核中心
國內極端立場帳號兩端政治極化、刻意挑釁(各家媒體自行監測)
詐騙集團跨境操作假名人投資、假投資 LINE 群165 反詐騙、警政署

台灣本地常見敘事戰場

  • 兩岸關係:武統威脅、台灣經濟崩盤、美國棄台論
  • 健保、年金:制度崩潰、醫療資源不足
  • 選舉:候選人黑函、AI 仿聲、政黨內鬥
  • 能源:核電、綠能、限電議題
  • 移工、移民:族群偏見、犯罪統計操弄
  • 食安、健康:中藥治病、疫苗副作用

二、跨平台即時監測

Python/pseudocode:多平台貼文資料結構

from dataclasses import dataclass, field
from datetime import datetime
from typing import List, Optional, Dict
from enum import Enum
import hashlib

class Platform(Enum):
    THREADS = "threads"
    PTT = "ptt"
    DCARD = "dcard"
    LINE_OPENCHAT = "line_openchat"
    FACEBOOK = "facebook"
    INSTAGRAM = "instagram"
    YOUTUBE = "youtube"
    TIKTOK = "tiktok"
    X = "x"  # 原 Twitter,2023 改名 X
    BLUESKY = "bluesky"
    MASTODON = "mastodon"
    TELEGRAM = "telegram"
    WEIBO = "weibo"        # 中國微博
    XIAOHONGSHU = "xhs"    # 中國小紅書
    DOUYIN = "douyin"      # 中國抖音
    WECHAT = "wechat"

@dataclass
class SocialPost:
    platform: Platform
    post_id: str
    author: str
    content: str
    timestamp: datetime
    url: str
    engagement: Dict[str, int] = field(default_factory=dict)
    media_urls: List[str] = field(default_factory=list)
    archived_urls: List[str] = field(default_factory=list)
    content_hash: str = ""

    def __post_init__(self):
        # 內容 hash 用於重複偵測
        self.content_hash = hashlib.md5(
            f"{self.platform.value}:{self.content}".encode()
        ).hexdigest()

@dataclass
class MonitoringQuery:
    keywords: List[str]
    platforms: List[Platform]
    accounts: List[str] = field(default_factory=list)
    hashtags: List[str] = field(default_factory=list)
    exclude_terms: List[str] = field(default_factory=list)
    start_date: Optional[datetime] = None

突發新聞偵測:關鍵字爆量警示

from collections import defaultdict
from datetime import datetime, timedelta

class BreakingNewsDetector:
    """偵測關鍵字提及之突發爆量。"""

    def __init__(self, baseline_window_hours: int = 24):
        self.baseline_window = timedelta(hours=baseline_window_hours)
        self.mention_history = defaultdict(list)

    def add_mention(self, keyword: str, timestamp: datetime):
        self.mention_history[keyword].append(timestamp)
        cutoff = datetime.now() - self.baseline_window * 2
        self.mention_history[keyword] = [
            t for t in self.mention_history[keyword] if t > cutoff
        ]

    def is_spiking(self, keyword: str, threshold_multiplier: float = 3.0) -> bool:
        now = datetime.now()
        recent = sum(1 for t in self.mention_history[keyword]
                    if t > now - timedelta(hours=1))

        baseline_hourly = len([
            t for t in self.mention_history[keyword]
            if t > now - self.baseline_window
        ]) / self.baseline_window.total_seconds() * 3600

        if baseline_hourly == 0:
            return recent > 10
        return recent > baseline_hourly * threshold_multiplier

台灣場景突發新聞監測建議關鍵字

  • 災害:颱風、地震、土石流、淹水、停電
  • 重大事件:總統、立法院、行政院、外交、兩岸
  • 突發醫療:疫情、食安、藥品回收
  • 詐騙趨勢:假投資、假LINE群、假電商

三、台灣社群平台特性(2026 年)

詳細的單一帳號驗證見 source-verification-tw §二。本節聚焦研究存取與監測

各平台研究存取狀態

平台 API、研究資格、價格與禁止事項高頻變動。使用下表前先查官方 developer docs / ToS / researcher access 頁面,並在報告中註明 last_checked 日期;若無法確認,只做人工觀察或明確標示資料限制。

平台研究存取注意事項
ThreadsThreads API(發布/嵌入);Meta Content Library(研究批次)2026 年 3 月公開檔案門檻降至 100 追蹤者;歷史研究需 Meta CL 學術資格
Facebook / InstagramMeta Content Library(2024/8 取代 CrowdTangle);Junkipedia(免費);NewsWhip(付費)CrowdTangle 已永久停運;Meta CL 自 2025/12/8 起改由 Meta 直接申請,學術或非營利為主
X (Twitter)付費 API(2026/2 改 pay-per-use);Brandwatch / Sprinklr(第三方付費)2023 取消免費學術層;禁止 scraping;台灣記者多透過 X Pro Search 或第三方資料商
TikTokResearch API(學術/非營利;EU DSA 第 40 條對 EU 研究者較寬鬆);Exolyt、Pentos(付費)台灣記者較難直接取得;IORG 2025 報告經正式申請取得
PTT完全開放網頁爬蟲(無需 API);PTT Web、PttPedia2026 年仍是台灣記者主要監測對象之一;新註冊 ID 在政治看板發文要警覺;不可錄製內部聊天
Dcard無公開 API;禁止商業 scraping(2023 政策更新);需透過官方合作校園、年輕女性議題主場;熱門文章常被搬到其他平台
LINE OpenChat無公開 API;手動加入觀察LINE 訊息查證官方帳號是查核管道,非監測管道
YouTubeYouTube Data API v3預設每日 10,000 units(約 100 次搜尋);深度研究需申請較高配額
RedditReddit API(非商業研究免費);Arctic Shift(Pushshift 後繼,免費)台灣使用者較少,但台灣相關 subreddit(/r/Taiwan、/r/taiwannews)有時可看
BlueskyJetstream(無需驗證的 filtered JSON);raw firehose公開為預設;成本低,適合記者監測
Mastodon / Fediverse各 instance 的 public-timeline API;cross-instance search 在 search.noc.social台灣使用者少但有,具公民團體聚集
TelegramBot API + MTProto + 公開頻道預覽 t.me/s/<channel>公開頻道多;私人群組禁止;Bellingcat 工具集(Telegago、Telepathy、TelegramDB)
微博(中國)API 受限,需中國手機認證境外資訊作戰起點之一;研究時用 VPN 注意法律風險
小紅書、抖音(中國)無公開 APITikTok 與抖音為同公司不同 app;字節跳動同集團

EU DSA 第 40 條對台灣記者的影響

EU DSA 第 40 條允許 EU 研究者強制存取超大型平台之資料。台灣記者非 EU 居民,但可:

  • EU 大學或研究機構合作(共同申請)
  • 跟 IORG、DoubleThink Lab 等已有 EU 合作網絡的機構協同
  • 用其已發表之研究結果作為延伸研究起點

台灣特有監測場景

場景工具備註
LINE 訊息流傳LINE 訊息查證 + Cofacts被動接收,不是主動監測
PTT 政治板水軍PTT Web 爬蟲 + 帳號註冊日查詢新註冊 ID 大量發文是經典訊號
Threads 政治擴散Meta Content Library + 手動觀察2024 後成為台灣 Z 世代政治新場域
TikTok 中國 narrative 擴散IORG 已發表研究 + 手動取樣個別記者難建立大規模監測;倚賴民間 NGO
FB 不實廣告Meta 廣告資料庫(facebook.com/ads/library)政治廣告必須揭露金主(2018 後規範)

四、帳號真實性分析

Python/pseudocode:真實性指標

from dataclasses import dataclass, field
from datetime import datetime
from typing import List, Optional

@dataclass
class AccountAnalysis:
    username: str
    platform: Platform
    created_date: Optional[datetime] = None
    follower_count: int = 0
    following_count: int = 0
    post_count: int = 0

    # 真實性訊號
    profile_photo_is_stock_or_ai: Optional[bool] = None
    bio_contains_simplified_chinese: Optional[bool] = None
    posts_primarily_reshares: Optional[bool] = None
    posting_pattern_beijing_timezone: Optional[bool] = None
    engagement_ratio_suspicious: Optional[bool] = None

    def calculate_red_flags(self) -> dict:
        flags = {}

        if self.created_date:
            age_days = (datetime.now() - self.created_date).days
            if age_days < 30:
                flags['new_account'] = f"創立 {age_days} 天"

        if self.following_count > 0:
            ratio = self.follower_count / self.following_count
            if ratio < 0.1:
                flags['low_follower_ratio'] = f"比率: {ratio:.2f}"

        if self.created_date and self.post_count > 0:
            age_days = max(1, (datetime.now() - self.created_date).days)
            posts_per_day = self.post_count / age_days
            if posts_per_day > 50:
                flags['excessive_posting'] = f"{posts_per_day:.0f} 篇/天"

        # 台灣特有訊號
        if self.profile_photo_is_stock_or_ai:
            flags['ai_or_stock_profile'] = "頭貼疑似 AI 生成或 stock photo"

        if self.bio_contains_simplified_chinese:
            flags['simplified_chinese_in_bio'] = "自介含簡體中文用語"

        if self.posting_pattern_beijing_timezone:
            flags['beijing_timezone_pattern'] = "發文時間集中於北京時區 (UTC+8 09:00-18:00)"

        return flags

    def authenticity_score(self) -> int:
        score = 100
        flags = self.calculate_red_flags()
        score -= len(flags) * 20
        return max(0, score)

台灣特殊認證考量

  • PTT:用 /help 或從文章作者點擊看 ID 註冊日;/W 看歷史文章/推噓比
  • Dcard:看校園認證標記(灰色畢業校徽);無認證者可疑度高
  • Threads:看對應 IG 帳號;新 IG + 新 Threads + 大量政治發言警示高
  • FB 粉專:看過往粉專名稱變更歷史(粉專可能從不相關主題更名為政治);Meta CL 有此歷史
  • YouTube:看頻道創立日 vs 第一支影片日;買來的舊頻道(老創立日 + 短內容歷史)

五、網絡分析

Python/pseudocode:帳號互動網絡

from collections import defaultdict
from typing import Set, Dict, List

class AccountNetwork:
    def __init__(self):
        self.interactions = defaultdict(lambda: defaultdict(int))
        self.accounts = {}

    def add_interaction(self, from_account: str, to_account: str,
                       interaction_type: str = "mention"):
        self.interactions[from_account][to_account] += 1

    def find_clusters(self, min_interactions: int = 3) -> List[Set[str]]:
        """找頻繁互動之帳號群。"""
        adjacency = defaultdict(set)
        for from_acc, targets in self.interactions.items():
            for to_acc, count in targets.items():
                if count >= min_interactions:
                    adjacency[from_acc].add(to_acc)
                    adjacency[to_acc].add(from_acc)

        visited = set()
        clusters = []

        for account in adjacency:
            if account in visited:
                continue
            cluster = set()
            stack = [account]
            while stack:
                current = stack.pop()
                if current in visited:
                    continue
                visited.add(current)
                cluster.add(current)
                stack.extend(adjacency[current] - visited)
            if len(cluster) > 1:
                clusters.append(cluster)

        return sorted(clusters, key=len, reverse=True)

    def coordination_score(self, accounts: Set[str]) -> float:
        """評估一群帳號的協同程度 (0-1)。"""
        if len(accounts) < 2:
            return 0.0
        total_possible = len(accounts) * (len(accounts) - 1)
        actual_connections = 0
        for acc in accounts:
            for other in accounts:
                if acc != other and self.interactions[acc][other] > 0:
                    actual_connections += 1
        return actual_connections / total_possible if total_possible > 0 else 0

視覺化工具

  • Gephi(免費,開源)— ICIJ Panama Papers 御用工具
  • Maltego CE(社群版免費,需註冊)
  • Cytoscape(免費,生物網絡為主但通用)
  • NodeXL(Excel 插件,基本版免費)

六、敘事追蹤

Python/pseudocode:主張擴散追蹤

from dataclasses import dataclass, field
from datetime import datetime, timedelta
from typing import List, Dict
from collections import defaultdict

@dataclass
class Claim:
    text: str
    first_seen: datetime
    first_seen_url: str
    variations: List[str] = field(default_factory=list)
    appearances: List[Dict] = field(default_factory=list)

    def add_appearance(self, url: str, platform: Platform,
                       timestamp: datetime, author: str):
        self.appearances.append({
            'url': url,
            'platform': platform.value,
            'timestamp': timestamp,
            'author': author
        })

    def spread_timeline(self) -> List[Dict]:
        return sorted(self.appearances, key=lambda x: x['timestamp'])

    def platforms_reached(self) -> Dict[str, int]:
        counts = defaultdict(int)
        for app in self.appearances:
            counts[app['platform']] += 1
        return dict(counts)

    def velocity(self, window_hours: int = 24) -> float:
        """擴散速率:每小時新出現次數。"""
        if not self.appearances:
            return 0.0
        recent = [
            a for a in self.appearances
            if a['timestamp'] > datetime.now() - timedelta(hours=window_hours)
        ]
        return len(recent) / window_hours

台灣敘事追蹤實務:從 PTT 到 LINE 的擴散鏈

常見台灣假訊息擴散路徑:

[微博 / 抖音 (中國)]
       ↓
[境外協同帳號:Threads / X]
       ↓
[台灣早期擴散:PTT 政黑 / 八卦 / 軍事板]
       ↓
[Threads / FB 二次擴散]
       ↓
[LINE 群組:長輩、社區、宗教群]
       ↓
[新聞媒體報導 (記者 LINE 群轉發或攝記分享)]

監測重點:

  • 逆向溯源:從 LINE 訊息往回追到最早出現處
  • 跨平台時間軸:同一主張在各平台的首次出現順序
  • 語言變化:從簡體 → 繁體 + 大陸用語 → 純繁體的清洗過程

七、協同操作偵測

行為訊號 checklist

## 協同無真實性行為 (CIB) 指標

### 時間模式
- [ ] 多帳號於數分鐘內發出相同內容
- [ ] 跨帳號之同步發文時間
- [ ] 爆量活動後突然沈寂
- [ ] 發文間隔短於人類打字速度

### 內容模式
- [ ] 跨帳號相同或近乎相同的文字
- [ ] 相同圖片/影片被多帳號分享
- [ ] 相同錯字、格式錯誤
- [ ] 可見複製貼上痕跡

### 帳號模式
- [ ] 帳號創立時間集中
- [ ] 命名規則相似(姓名 + 數字)
- [ ] 通用或 stock 大頭照(**或 AI 生成寵物照** — GoLaxy 案)
- [ ] 個人內容極少,多為轉發
- [ ] 追蹤同樣帳號
- [ ] 互相互動比例失衡

### 網絡模式
- [ ] 在網絡分析中形成密集叢
- [ ] 放大同樣的外部來源
- [ ] 鎖定同樣的帳號或 hashtag
- [ ] 跨平台協同可見

### 台灣場景特有訊號
- [ ] 自介寫「台灣居民」但用簡中用語(視頻、網絡、賦能、打造)
- [ ] 帳號創立短期內大量政治發文
- [ ] 發文時間集中於 UTC+8 09:00-18:00 (中國辦公時間)
- [ ] 跨平台同一 narrative,字數略異(避過去重複偵測)
- [ ] 同一張(疑似 AI 生成)的人像或寵物照在多帳號出現

結論分級

不要把分數直接寫成「水軍」或「網軍」。先依證據強度分級,並讓被點名帳號或組織有回應機會。

等級用語最低證據
1觀察到相似訊號少量帳號、單一平台、尚無明確同步
2疑似協同多帳號 + 時間 / 內容 / 網絡至少兩類訊號
3符合協同操作特徵跨平台或多批帳號,方法可重現,有存檔證據
4可歸因之協同操作具內部文件、資金流、平台下架報告或權威機構確認

Python/pseudocode:協同程度評分

from typing import List

def coordination_likelihood(posts: List[SocialPost]) -> dict:
    """評估一組貼文是否為協同活動。"""

    if len(posts) < 2:
        return {'score': 0, 'signals': []}

    signals = []
    score = 0

    # 內容重複
    contents = [p.content for p in posts]
    unique_contents = set(contents)
    if len(unique_contents) < len(contents) * 0.5:
        signals.append("內容大量重複")
        score += 30

    # 時間集群
    timestamps = sorted(p.timestamp for p in posts)
    rapid_posts = 0
    for i in range(1, len(timestamps)):
        if (timestamps[i] - timestamps[i-1]).seconds < 60:
            rapid_posts += 1
    if rapid_posts > len(posts) * 0.3:
        signals.append("可疑時間集群")
        score += 25

    # 帳號數量 vs 內容相似度
    authors = set(p.author for p in posts)
    if len(authors) > 5 and len(contents) / len(authors) > 2:
        signals.append("少數帳號發出大量相似貼文")
        score += 20

    return {
        'score': min(100, score),
        'signals': signals,
        'posts_analyzed': len(posts),
        'unique_authors': len(authors)
    }

台灣協同操作真實案例(GoLaxy 範本)

依 DoubleThink Lab 2024-2025 揭露:

特徵:

  • 大量帳號使用 AI 生成寵物照作為頭貼
  • 自稱「台灣居民」「台灣愛國者」「關心台灣者」
  • 偽裝個人帳號,發表政治見解
  • 跨平台(X、Threads、FB)同步活動
  • 攻擊目標:特定政治人物、政黨、立場

研究方法(可仿效):

  1. 大規模帳號採樣:用平台 API 或公開資料抓 N 萬帳號之 metadata
  2. 頭貼分群:用反向圖搜或 AI 偵測辨識 stock/AI 生成
  3. 發文時區比對:UTC+8 但時段分布不像台灣作息
  4. 互動圈分析:用 Gephi 找密集連線之帳號群
  5. 內容主題比對:NLP topic modeling 找重複 narrative

八、存檔(在內容被刪除前)

完整存檔工作流見 source-verification-tw §十。

Python/pseudocode:雙重存檔(社群場景)

import re
import requests
from datetime import datetime
from typing import Optional
from urllib.parse import quote, urljoin

class SocialArchiver:
    """在社群內容被刪除前存檔。"""

    def __init__(self):
        self.archived = {}

    def archive_to_wayback(self, url: str) -> Optional[str]:
        """送 URL 到 Internet Archive。"""
        try:
            save_url = f"https://web.archive.org/save/{quote(url, safe='')}"
            response = requests.get(save_url, timeout=30)
            if response.status_code == 200:
                self.archived[url] = {
                    'wayback': response.url,
                    'archived_at': datetime.now().isoformat(),
                }
                return response.url
        except Exception as e:
            print(f"Wayback 存檔失敗:{e}")
        return None

    def archive_to_archive_today(self, url: str) -> Optional[str]:
        """送 URL 到 archive.today。"""
        try:
            response = requests.post(
                'https://archive.today/submit/',
                data={'url': url, 'anyway': '1'},
                timeout=60,
                allow_redirects=False,
                headers={'User-Agent': 'Mozilla/5.0 (verification archive bot)'},
            )
            if response.status_code in (301, 302, 303, 307, 308):
                location = response.headers.get('Location')
                if location:
                    return urljoin(response.url, location)
            if response.status_code == 200:
                refresh = response.headers.get('Refresh', '')
                m = re.search(r'\burl\s*=\s*(.+)', refresh, re.IGNORECASE)
                if m:
                    return urljoin(response.url, m.group(1).strip().strip('\'"'))
        except Exception as e:
            print(f"archive.today 失敗:{e}")
        return None

archive.today 2026 年實務狀態:

  • 2025 年 10 月 FBI 對其註冊商發出傳票調查營運者身分
  • 2026 年 2 月 Wikipedia 投票決定停用其為引用來源(因 2026/1 該服務內含 DDoS 攻擊碼)
  • 仍可用於 Wayback 無法擷取之頁面,但視為次要管道
  • 對 scraper 嚴格限流並出 CAPTCHA

台灣本地存檔資源

工具用途
國家圖書館紙本資料、舊報紙
g0v 各專案資料庫公民協作封存(立委質詢、地方議會)
台灣事實查核中心檔案庫已查核訊息存檔
個人 SSD + 雲端兩份不要只放雲端

九、台灣資訊作戰研究方法論

DoubleThink Lab 研究方法(範例)

GoLaxy 案例研究步驟:

  1. 資料源:洩漏文件 / 跨國 OSINT 網絡(Shadow FIMI Investigator Network)
  2. 帳號識別:從文件揭露之命名規則、頭貼特徵反向追蹤
  3. 行為比對:採樣已識別帳號之數月發文 → 比對命名相似帳號
  4. 網絡分析:用 Gephi 視覺化互動關係
  5. 發布:報告 + Medium 開源化,便於社群驗證

IORG 研究方法(範例)

「TikTok 對台灣青少年認知重構」研究:

  1. 抽樣:多階段抽樣台灣青少年使用者
  2. 問卷 + 行為資料:問卷取意見、行為資料取觀看模式
  3. TikTok Research API:申請 EU DSA Article 40 路徑取資料
  4. 學術合作:與大學研究中心合作確保方法學
  5. 發布:中英文版報告;媒體公關發送

你能用的「平民版」方法

如果你不是 NGO,只是個別記者或小編輯部,仍可做:

  1. 手動採樣 20-50 個可疑帳號 → 試算表記錄頭貼、創立日、追蹤者數、發文 pattern
  2. 逆向圖搜每個頭貼(TinEye、Yandex)→ 找 AI 生成或 stock 照
  3. 用 g0v 公開工具(如 Cofacts)查訊息已知擴散管道
  4. 找 DoubleThink Lab、IORG 已發表之相關研究作為背景或引用
  5. 報導發出前對被指控的帳號或人物提出查證機會
## SMI 報告最低輸出格式

- 研究問題:
- 平台 / 關鍵字 / 帳號範圍:
- 蒐集方法與授權狀態:
- 時間範圍與 last_checked:
- 樣本數與排除條件:
- 主要訊號:
- 結論分級:觀察到相似訊號 / 疑似協同 / 符合協同操作特徵 / 可歸因之協同操作
- 限制:
- 被點名方回應:
- 發稿風險:

十、OSINT 工具集(全球通用,加台灣相關)

帳號真實性與協同

  • Botometer X(osome.iu.edu)— Twitter 機器人評分學術標準;2023/6 後僅 archival 模式,不能評 2023/5 後之帳號
  • Hoaxy / Hoaxy2(osome.iu.edu)— 運作中;Hoaxy2 加 Mastodon 搜尋、Bluesky 即時監測、FB News Bridge
  • OSoMe Coordiscope — 協同網絡視覺化,免費
  • CooRTweet(R 套件)— CooRnet 後繼;原版於 2024/8 CrowdTangle 停運時一併消失
  • Bot Sentinel — 2025 全年離線,2026 計畫重啟;用前先驗證運作狀態

反向圖搜(見 source-verification-tw §三)

  • TinEye、Yandex Images、Google Lens、Bing Visual Search

影像鑑識

  • Forensically (29a.ch) — error level analysis、clone detection
  • FotoForensics — 同上
  • InVID-WeVerify(EU vera.ai 計畫)— 2025 加合成圖偵測 + 語音複製偵測 beta

網絡分析

  • Gephi(免費,開源)
  • Maltego CE(社群版免費)
  • NodeXL(Excel 插件)
  • Cytoscape(免費)

台灣相關工具

  • Cofacts API(g0v)— 已知 LINE 假訊息資料庫
  • PTT Crawler(g0v 多個專案)— PTT 爬蟲開源工具
  • 台灣事實查核中心已發表報告查詢
  • DoubleThink Lab Medium 公開文章(doublethinklab.medium.com)
  • IORG 月度監測報告(iorg.tw)

方法論權威(2026 年)

  • Bellingcat Online Investigation Toolkit(bellingcat.gitbook.io/toolkit)— 持續更新
  • Information Futures Lab @ Brown SPH — First Draft News 後繼;Claire Wardle 共同主持
  • WITNESS Deepfakes Rapid Response Force(gen-ai.witness.org)— 配對記者與媒體鑑識專家
  • CJR Tow Center 2025 深偽偵測指南(非技術版,記者導向)

Stanford Internet Observatory 已於 2024/6 解散,選舉研究角色轉到 Stanford Social Media Lab (Hancock) 與 NYU Stern Center for Business and Human Rights


十一、法律風險

《選舉罷免法》§104 加重深偽條款(2023 修法)

意圖使候選人當選不當選,以散布、播送、揭露深度偽造影音之方法,致生損害於公眾或他人者:

  • 最重 7 年以下有期徒刑,得併科 1,000 萬元以下罰金

記者監測場景含義:

  • 記者監測揭露深偽影片是正當新聞工作,不在處罰範圍
  • 轉發深偽影片(即使為了「警示」)可能觸法 — 務必加上明確「為深度偽造」標記
  • 必要時模糊/打馬賽克

《社會秩序維護法》§63 第 5 款

散佈謠言,足以影響公共之安寧者」處 3 日以下拘留或新台幣 3 萬元以下罰鍰。

記者場景:

  • 監測 + 揭露假訊息 ≠ 散布假訊息(具公益必要性)
  • 社群媒體轉發未經查證之傳言可能觸法

《刑法》§310 誹謗罪

詳見 fact-check-workflow-tw §九。

SMI 場景特有風險:

  • 揭露某帳號為「協同操作」「水軍」「網軍」時,若該帳號為真實人物而非協同操作,可能構成誹謗
  • 保護措施:
    • 報告中用「疑似」「符合協同操作特徵」等保留語
    • 完整研究方法讓讀者自行判斷
    • 給被點名帳號回應機會

《刑法》§358 入侵電腦罪

  • 不可為了監測而駭入私人帳號、群組
  • 不可用假帳號加入封閉群組進行監測(除非取得管理員同意)
  • 公開頻道、公開貼文 OK;私訊、私群組、Telegram 私頻道禁止

《個資法》

  • 監測公開資訊 OK
  • 聚合多重個資(姓名 + 地址 + 工作 + 親屬 + 病史)為「人物剖繪」即使資料皆來自公開,可能構成個資法疑慮
  • 新聞自由抗辯(§51)可主張,但最低必要原則仍須遵守

十二、倫理規範

  • 只存檔公開內容
  • 不要為了監測建立假帳號(無權立場 vs 學術研究有專案規範)
  • 尊重平台 ToS:X 2023 後明文禁止 scraping(即使公開貼文);依賴 API 或授權資料商
  • 不轉用研究存取金鑰於非研究用途:Meta、TikTok 對 ToS 偏離會撤銷存取
  • 保護分享社群內容的消息來源
  • 發布前驗證:協同評分是假設,不是結論
  • 發放前考慮影響:即使內容有害,放大可能造成更多傷害

與其他 -tw skill 協作

social-media-intelligence-tw 處理跨帳號、跨平台之模式偵測。實務中與其他 -tw skill 緊密協作。

典型記者工作流順序(7 個 skill 串接)

[1. 資料蒐集]                  ← foia-requests-tw
       ↓
[2. 來源驗證 / 內容查證]       ← source-verification-tw
       ↓
[2.5. 跨平台情報 / OSINT]      ← social-media-intelligence-tw  ← 你在這裡
       ↓
[3. 採訪準備 / 採訪]           ← interview-prep-tw
       ↓
[4. 主張驗證 / 查核]           ← fact-check-workflow-tw
       ↓
[5. AI 起草草稿]
       ↓
[6. 去 AI 寫作味]              ← ai-writing-detox-tw
       ↓
[7. 編務校對]                  ← newsroom-style-tw
       ↓
[8. 發稿]

social-media-intelligence-twsource-verification-tw步驟 2 並列工作:前者處理多帳號模式,後者處理單一帳號真偽

重疊處理(同問題多 skill 都有)

  • 帳號真偽:

    • source-verification-tw §二:單一帳號驗證(SIFT + 平台特性)
    • social-media-intelligence-tw §四:帳號群真實性評分(authenticity score)
    • 單一帳號用前者;100 個帳號用後者
  • 協同操作:

    • social-media-intelligence-tw §七:主處理(CIB 指標、評分)
    • source-verification-tw §二:輔助(GoLaxy 紅旗特徵)
    • social-media-intelligence-tw 為準
  • 深偽案例:

    • source-verification-tw §五 + §六:單一影像/影片之深偽偵測(C2PA、Hive、Reality Defender)+ 台灣案例
    • social-media-intelligence-tw §十一:散布、轉發之法律風險(§104 加重條款)
    • 兩者搭配最完整
  • 存檔:

    • source-verification-tw §十:詳述
    • social-media-intelligence-tw §八:程式碼版本
    • source-verification-tw 為主
  • 法律風險:

    • social-media-intelligence-tw §十一:SMI 場景特有(揭露水軍之誹謗風險、§358 入侵電腦)
    • source-verification-tw §十二:來源驗證場景
    • fact-check-workflow-tw §九:查核場景
    • 三者互補,場景不同

建議搭配安裝

social-media-intelligence-tw 強烈建議搭配 source-verification-tw 使用 — 兩者是 OSINT 工作的兩面。新聞工作者也建議加 fact-check-workflow-twfoia-requests-twnewsroom-style-twai-writing-detox-tw


附錄一:常用 OSINT 工具清單

類別工具網址
機器人偵測Botometer Xosome.iu.edu/tools/botometer
敘事追蹤Hoaxy / Hoaxy2osome.iu.edu/tools/hoaxy
協同網絡Coordiscopeosome.iu.edu
協同分析CooRTweet (R)github
反向圖搜TinEyetineye.com
反向圖搜Yandex Imagesyandex.com/images
反向圖搜Google Lenslens.google.com
影像鑑識FotoForensicsfotoforensics.com
影像鑑識Forensically29a.ch/photo-forensics
影片驗證InVID-WeVerifyweverify.eu
網絡視覺化Gephigephi.org
網絡視覺化Maltego CEmaltego.com
存檔Wayback Machineweb.archive.org
存檔Archive.todayarchive.ph
台灣假訊息資料庫Cofactscofacts.tw
台灣假訊息查核台灣事實查核中心tfc-taiwan.org.tw
FB 廣告資料庫Meta Ad Libraryfacebook.com/ads/library
台灣資訊作戰研究DoubleThink Labdoublethinklab.org
台灣資訊環境IORGiorg.tw

附錄二:Bellingcat / 跨國 OSINT 網絡

資源用途
Bellingcat Toolkit 2.0bellingcat.gitbook.io/toolkit
Bellingcat 訓練課程bellingcat.com/online-investigation-academy
WITNESS DRRFgen-ai.witness.org
Information Futures Labinformationfutureslab.org
Shadow FIMI Investigator Network(跨國 OSINT 網絡,與 DoubleThink Lab 合作)

版本說明

  • 版本:1.0.1
  • 截至:2026-05-28
  • 改寫自:upstream journalism-core/social-media-intelligence (jamditis/claude-skills-journalism)
  • 在地化重點:
    • 保留 upstream 通用 Python 程式碼:多平台監測、突發新聞偵測、帳號真實性、網絡分析、敘事追蹤、協同評分
    • 保留 OSINT 工具集:Botometer X、Hoaxy、Gephi、Bellingcat 等
    • 新增台灣 16 個平台清單:Threads / PTT / Dcard / LINE OpenChat / FB / IG / YouTube / TikTok / X / Bluesky / Mastodon / Telegram / 微博 / 小紅書 / 抖音 / WeChat
    • 新增台灣資訊作戰生態章節:中國 GoLaxy 系統、TikTok 演算法、WeChat 視頻號、選舉期境外干預
    • 新增台灣敘事追蹤實務:從微博/抖音 → 境外協同帳號 → PTT → Threads/FB → LINE 群組 → 媒體之擴散鏈
    • 新增 GoLaxy 範本研究方法(DoubleThink Lab 研究方法)
    • 新增「平民版」研究方法(個別記者也能做)
    • 新增 Cofacts API、PTT Crawler 等 g0v 工具
    • 新增法律風險章節:《選罷法》§104 加重深偽條款、《社維法》§63、《刑法》§310 誹謗、§358 入侵電腦、《個資法》§51 新聞自由抗辯
    • 新增與其他 -tw skill 協作章節(7 個 skill 串接;與 source-verification-tw 並列工作)
  • 法律依據:截至 2026 年 5 月之《選舉罷免法》《社會秩序維護法》《刑法》《個人資料保護法》。具體條號與細節請以全國法規資料庫公告版本為準;涉及具體調查報導法律事項建議洽律師
  • 平台 API 與工具狀態截至 2026 年 5 月;訪問前先驗證最新政策

What ships with it

Read from the repository

Just SKILL.md. No reference files, no scripts.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.