Slackログアーカイブ

dd2030 の Slack public channel ログは、dd2030-wiki には直接取り込まず、外部リポジトリ digitaldemocracy2030/slack-logs に置く。wiki では、個別発言をそのまま転載するのではなく、必要な範囲を検索して要約・整理して使う。

現在の構成

層パス用途
月次 canonicalraw/slack/<channel_id>/<YYYY-MM>.jsonl.gz過去の議論を確実に辿る。スレッド完全性を優先するため遅延あり
rolling mirrormirror/slack/<channel_id>.jsonl.gz直近75日程度の現状確認。6時間ごとに上書き更新
同期メタデータmirror/sync.json最終同期時刻、対象チャンネル、件数を見る
ユーザー情報mirror/users.json, state/users-<YYYY-MM>.jsonuser_id を表示名に解決する

2026-06-30 時点で確認した mirror は、58チャンネル・506メッセージ・14日 window(2026-06-16T04:12:50Z 〜 2026-06-30T04:12:50Z)を持っていた。その後 2026-08-21 に window を 14日→75日 へ拡大した(59チャンネル・約2,300メッセージ)。canonical の約2ヶ月遅延と mirror の窓の間に「どちらの層にも存在しない盲点」ができるのを防ぎ、両層を常時オーバーラップさせるため(→ アーカイブパイプライン設計)。

同日時点で、raw/slack/*/2025-01.jsonl.gz から 2026-02.jsonl.gz までの月次canonicalは各チャンネルのメタデータのみで、本文メッセージは入っていなかった。2026年3月・4月には本文メッセージが入っているため、過去月を調べるときは「月次ファイルが存在する」だけでなく、本文行があるかを確認する。本文がない期間のSlack根拠は、補助アーカイブの oss_weekly_reporter/data/<week>/raw/slack/ や markdown/slack/ を併用する。

なぜ 2026-03 より前は本文が無いのか(2026-08-21 に判明): これはバックアップ基盤の不具合ではなく、Slack 側の保持期限(無料プランの90日と推定)によるもの。本文が入り始めるのが 2026-03 で、slack-logs のブートストラップ(過去分の一括バックフィル)を走らせた 2026-06-09 の約90日前 ≈ 2026-03-11 と cutoff が一致する。つまり バックフィルを実行した時点で、それより古いメッセージは既に Slack から消えていた。したがって 2025-04〜2026-02 の本文は Slack からは原理的に再取得できず、唯一の出所は同時期に取得済みの OSS Weekly Reporter 週次アーカイブ。逆に今後の月がメタのみになることはない(月次backupは実行月の2ヶ月前=取得時に90日以内を取るため)。

復旧の実施(2026-08-22): この歴史分を OSS Weekly Reporter から canonical へ埋め戻した(slack-logs PR #10、マージ後に有効)。範囲 2025-04〜2026-02・現行54ch・17,548メッセージ(スレッド返信含む)。週次(名基準)→月次(ID基準)へ変換し、月境界は Asia/Tokyo、週窓の重複は ts で dedup。残る欠落は2つ: (1) 2025-01〜03 は workspace が2025年3月開始のため元々存在しない、(2) 現行workspaceに無いアーカイブ/削除20ch(~3,591件) は名→IDを解決できず未対応で、復旧には conversations.list(archived含む)でのID取得が要る(issue #4 の follow-up)。

チャンネル改名の注意: 2025年4月末に workspace 全体の prefix 整理があり、多くのチャンネルが改名された(例: 1_雑談→7_雑談、自治体_meetup_運営→2_自治体_meetup_運営、8_開発_公聴ai_figma→8_開発_広聴ai_figma、Devin系の複数名前→8_devinと人間たちの部屋)。歴史ログを名前で探すときは旧名も候補に入れる。canonical は ID 基準なので、同一チャンネルの過去は改名前後で同じ <channel_id>/ に入る。

読む順序

  1. 直近の状況を知りたい時は mirror/sync.json で同期時刻と対象チャンネルを確認する。
  2. 直近75日程度の発言は mirror/slack/*.jsonl.gz を検索する。
  3. 過去月の議論は raw/slack/<channel_id>/<YYYY-MM>.jsonl.gz を検索する。
  4. 月次canonicalに本文がない期間、または週次の要約や GitHub Issues/PR との横断整理が必要な場合は、補助アーカイブとして OSS Weekly Reporter を読む。

検索例

ローカル checkout は /tmp ではなく、このリポジトリ直下の work/ に置く。/tmp は消える可能性があり、検索結果が空の時にデータ欠落と未checkoutを区別しにくくなる。

# 初回だけ clone
mkdir -p work
gh repo clone digitaldemocracy2030/slack-logs work/slack-logs -- --depth 1
 
# 直近 mirror を検索
python3 scripts/search-archive.py "キーワード"
 
# チャンネル名で絞って検索(IDでも可)
python3 scripts/search-archive.py --channel コアループ "提言"
 
# 過去月の canonical を検索
python3 scripts/search-archive.py --layer raw --month 2026-04 "キーワード"
 
# 月次ファイルに本文がない時は補助アーカイブを検索
python3 scripts/search-archive.py --source oss-weekly-reporter --layer raw --since 2025-10-22 --until 2025-10-29 "キーワード"
 
# チャンネル一覧
python3 scripts/search-archive.py --list-channels

詳細な運用手順は archive_index.md を参照。

wiki に使う時の注意

  • Slack の発言は、原則として要約・整理して使う。
  • 個人の雑談や私的な内容は wiki に持ち込まない。
  • 出典には digitaldemocracy2030/slack-logs/raw/slack/... または digitaldemocracy2030/slack-logs/mirror/slack/... のように、リポジトリ名とファイルパスを残す。
  • mirror/ は上書きされるため、長期的な根拠として残したい場合は raw/ の月次 canonical を優先する。
  • 月次canonicalに本文がない過去期間は、oss_weekly_reporter の週次 raw/markdown を補助根拠として使い、ページ内でその出典を明記する。

関連ページ