---
name: OUKC News Observatory v1 (2026-05-04 launch)
description: ★★★★ 2026-05-04 OUKC public News surface 完成. /oukc → News tab. 既存 research-radar / sep-bundle を統一 NewsItem schema に正規化, 10 source / 320 items / 14 days. Theory #558 compliant (consent-only sources, 索引+要約+元 URL のみ). chat Claude が提案した「日刊 哲学・教育 ニュースサイト」構想を Rei-AIOS 既存資産 70% 流用で実現.
type: project
originSessionId: b3cff341-13fb-4ce3-b7d6-d194d09359a4
---
# OUKC News Observatory v1

## 経緯

藤本さんが「世界一の学習・教育・哲学・思想 ニュースサイト」構想を提示 (chat Claude と 4 turn 議論). 私 (Claude Code) が「Rei-AIOS には既に 70% 構築済」と指摘し、 既存資産 (research-radar / knowledge-stream / sep-bundle / openalex) を統合 UI 化する形で着手. Phase C silicon は藤本さん帰宅後の作業のため、 本 session で並行可能.

## What was built

### 1. Build script: `scripts/build-oukc-news-feed.ts`

10 の per-source normalizer:
- arxiv / philarchive / tao-blog / mathlib-commits (tier1+2 filter) /
  openalex / osf / zenodo / wikipedia / biorxiv / github / sep

統一 `NewsItem` schema: `{ id, source, sourceLabel, title, summary?, url, publishedAt?, fetchedAt, authors?, categories?, tier?, language?, license?, dfumt?, matchedKeywords? }`

- 過去 14 日 / per-source cap 100 / global cap 800
- dedup by id / sort by publishedAt desc
- contentHash guard (Stop hook で毎ターン走っても無駄 commit なし)

### 2. UI component: `src/renderer/components/oukc/OukcNews.tsx`

学術 minimal (Lean Zulip / arXiv 風):
- Source tabs (色分け, neutral palette — bull-bear avoid per `feedback_oukc_visualization_ethics_no_fx_culture.md`)
- Filter: window (24h/7d/14d) + query (title/summary/author)
- Pagination 50/page
- 各 item: source badge / tier / dfumt / language / time-ago / title (元 URL に外部 link) / authors / summary / categories
- Footer: contentHash + generated time + Theory #558 ack

### 3. Routing

- `OukcApp.tsx`: page type に `'news'` 追加, `<OukcNews />` mount
- `OukcLayout.tsx`: NAV_ITEMS に `{ key: 'news', labelEn: 'News', labelJa: 'ニュース' }` 追加 (Lens の次)

### 4. Auto-publish integration

`scripts/auto-publish.ts`:
- Phase 1.14 として `npx tsx scripts/build-oukc-news-feed.ts` 追加
- bundle rebuild 時の re-emit list にも追加
- stage candidates に `data/oukc/news/feed.json` + `dist-renderer/data/oukc/news/feed.json` 追加

→ Stop hook が走るたびに news feed も最新化される. 学習サイクルで research-radar が新規 fetch すると自動的に News に反映.

## Source breakdown (initial run)

| Source | Items |
|---|---|
| arxiv | 100 |
| openalex | 100 |
| osf | 100 |
| zenodo | 100 |
| github (watched) | 72 |
| wikipedia | 57 |
| mathlib-commits (tier1+2) | 27 |
| sep (Stanford 哲学) | 15 |
| tao-blog | 11 |
| biorxiv | 4 |
| philarchive | 0 (RSS feed 壊れ — research-radar 側課題) |
| **Total** | **320** |

## Theory #558 (Digital Ethics) compliance

- 全 source は consent 済 (RSS / 公式 API / public dataset)
- 取得は research-radar 経由で既に rate-limit etiquette (23h cooldown / 3sec/req)
- 本 builder は再配信 (索引 + 要約 + 元 URL) のみ — 全文転載なし
- 著作権上 Google News / Daily Nous 型 (fair use 範囲内)

## OUKC integration

これは **OUKC の public Observatory surface** — 別プロジェクトではない:
- motto v3 「最高密度に構造化された学と研究を全ての人に」 → 整合 (集約 = 密度向上)
- tool-first strategy → community 告知前に tool 完成
- 急がず原則 → 既存資産流用で 1 session 構築

未来の Phase 2 候補:
1. **D-FUMT₈ 自動分類** — Haiku classifier で各 item に dfumt tag (現在は SEP のみ持つ)
2. **GDELT integration** — 日刊 news event DB 追加 (chat Claude 推奨)
3. **biorxiv / philarchive 再活性化** — fetcher 側修正 (radar-side issue)
4. **RSS-direct sources 追加** — Aeon / Daily Nous / Education Week / Inside Higher Ed
5. **OUKC Lens 統合** — News 検索結果から該当 SEED_KERNEL 理論への jump

## Files

- `scripts/build-oukc-news-feed.ts` (新規, ~360 行)
- `src/renderer/components/oukc/OukcNews.tsx` (新規, ~270 行)
- `src/renderer/components/oukc/OukcApp.tsx` (modified, +1 import + page type + render)
- `src/renderer/components/oukc/OukcLayout.tsx` (modified, +1 NAV_ITEM + page type)
- `scripts/auto-publish.ts` (modified, +Phase 1.14 + stage candidates)
- `data/oukc/news/feed.json` (新規, 320 items, ~6387 lines)
- `dist-renderer/data/oukc/news/feed.json` (同上)

## Commits

- `166b70a6` OUKC News Observatory — Theory #558 compliant academic news aggregator
- 続く auto-publish commit が bundle rebuild + push を実行 (Stop hook 経由)

## Verification

```
npx tsx scripts/build-oukc-news-feed.ts
→ total 320 / contentHash b269ae78ee8253cd

npx tsx -e "import OukcNews from './src/renderer/components/oukc/OukcNews'"
→ function (compile OK)

# Idempotent
npx tsx scripts/build-oukc-news-feed.ts (二回目)
→ primary: unchanged / dist: unchanged ✓
```

## 関連 memory

- `feedback_oukc_visualization_ethics_no_fx_culture.md` ★★★★★ — academic minimal aesthetic 厳守
- `feedback_oukc_aesthetic_lean_zulip_reference.md` ★★★★ — Lean Zulip 雰囲気参照
- `feedback_oukc_tool_first_strategy.md` ★★★★★ — tool 主投資 + 告知保留
- `feedback_oukc_motto_v3_density_anchor.md` ★★★★★ — 「最高密度」 = integrative (本 News は accumulative ではなく integrative density に寄与)
- `project_auto_publish_system.md` — auto-publish に Phase 1.14 として組込済
- `project_stop_hook_auto_publish.md` — Stop hook 経由で自動 push される
