RecruitWorks Wiki — Schema

このリポジトリは、リクルートワークス研究所 機関誌『Works』のバックナンバーを題材に構築する個人向けナレッジベース。スキーマ思想は ../BookSummary/CLAUDE.md を踏襲し、雑誌(号単位)向けに適応している。

目的: 過去号コンテンツ間を関連づけて理解し、今後の連載テーマの候補を考える。横断テーマ抽出と未来の企画アイデアを主成果物とする。

ソースは backnumber/ にある PDF 50号(w_146.pdfw_195.pdf, 2018-02〜2026-04, 8年余り)。LLM はこの schema を読み、号単位で構造化された wiki を増分的に構築・維持する。


Python 環境

このプロジェクトでは仮想環境 C:\Users\lmnag\python-venv\QSF を使用する。


ディレクトリ構造

RecruitWorks/
├── CLAUDE.md              # このファイル: schema
├── backnumber/            # 原典 PDF (不変)
│   └── w_NNN.pdf
├── raw/                   # 抽出済み生テキスト (不変)
│   └── w_NNN.txt
├── tools/
│   └── tategaki_to_yoko.py  # 縦書き→横書き後処理 (BookSummaryから複製)
└── wiki/
    ├── index.md           # 全ページのカタログ
    ├── log.md             # 時系列の活動ログ
    ├── issues/            # 号カード層 (各号1ファイル、~500-1500字)
    │   └── w_NNN.md
    ├── summaries/         # 号の構造要約層 (各号1ファイル、~3000-8000字)
    │   └── w_NNN.md
    ├── themes/            # 【全号ingest後】複数号を横断するテーマ
    │   └── <ThemeID>.md
    ├── entities/          # 【将来】頻出論者・組織ページ
    └── ideas/
        └── future-themes.md  # ★成果物: 今後の連載テーマ候補(根拠付き)

号ID命名規則


層の役割と書式

号カード層 (issues/w_NNN.md)

号の「名刺」。特集テーマ・主要記事・ポジションを素早く思い出せる粒度。目安 500-1500字

必須要素 (frontmatter):

---
issue: NNN
title: <特集タイトル>
subtitle: <副題があれば>
date: <発行年月 YYYY-MM>
pages: <総頁数>
source: raw/w_NNN.txt
tags: [主題タグ, ...]
type: issue_card
---

本文構成 (柔軟):

  1. 特集の位置づけ — どの問題意識の下にある号か、前後号との関係
  2. 中心的主張 — その号を貫く論旨を 3-5 点で
  3. 主要記事リスト — 記事タイトル・筆者・要旨1行
  4. 登場する主要論者・組織 — 研究者・実務家・企業
  5. 他号との関係 — 関連号へのリンク(同一テーマ・発展・対比)
  6. 読みどころ — 特に重要な記事とその頁
  7. 一行サマリ — 最後に太字で一行

号要約層 (summaries/w_NNN.md)

号の論点マップ。記事別の主張・根拠・具体例を箇条書き中心で。目安 3,000-8,000字

frontmatter:

---
issue: NNN
title: <特集タイトル>(構造要約)
date: <YYYY-MM>
source: raw/w_NNN.txt
card: ../issues/w_NNN.md
type: issue_summary
---

本文構成:

書かないこと:

テーマページ (themes/) — 全号ingest後に作成

複数号を横断する主題を抽出し、雑誌の編集的関心の変遷を可視化する。

導入条件:

本文構成:

成果物: ideas/future-themes.md

このプロジェクトの最終成果物。テーマページ群から導かれる、今後取り上げるべき連載テーマの候補リスト

書式:

## 候補N: <テーマ名>

**動機**: なぜ今これを取り上げるべきか(過去号の空白、時事的必然、読者関心の動向)

**拠点となる過去号**: w_XXX (YYYY-MM), w_YYY (...)

**未扱いの切り口**: 既存号がカバーしていない論点

**想定される主要論者/組織**:

**連載構成案**(任意): 3-5回の回割り

エンティティページ (entities/) — 将来


運用(Operations)

Ingest (新しい号の取り込み)

  1. テキスト抽出: backnumber/w_NNN.pdf から raw/w_NNN.txt へ - PyMuPDF で抽出 → tools/tategaki_to_yoko.py で後処理 - Works誌は横書き・2段組が多いが、カラム順序の乱れ対策として後処理スクリプトを通す
  2. 構造把握: 目次ページを読み、特集構成を掴む
  3. 号カード作成: wiki/issues/w_NNN.md
  4. 構造要約作成: wiki/summaries/w_NNN.md
  5. index.md 更新
  6. log.md 追記: ## [YYYY-MM-DD] ingest | w_NNN <特集名>

テキスト抽出手順

import fitz
doc = fitz.open('backnumber/w_NNN.pdf')
out = []
for i, page in enumerate(doc):
    out.append(f'\n\n===== PAGE {i+1} =====\n\n')
    out.append(page.get_text())
with open('_tmp_raw.txt', 'w', encoding='utf-8') as f:
    f.write(''.join(out))

続けて後処理:

python tools/tategaki_to_yoko.py _tmp_raw.txt raw/w_NNN.txt

===== PAGE N ===== マーカーは grep ナビゲーションに使うので必須。

Theme Extraction (全号ingest後の横断分析)

  1. 全20号の issues/ と summaries/ を通読
  2. 繰り返し登場する主題を洗い出し(手作業でタグクラスタリング)
  3. 2号以上で扱われた主題に themes/<ThemeID>.md を作成
  4. 各テーマで「未扱いの切り口」を同定 → ideas/future-themes.md へ蓄積

Query (質問への応答)

  1. wiki/index.md を読む
  2. 関連する issues → summaries → (あれば) themes をこの順で辿る
  3. 必要なら raw/w_NNN.txt で grep して原文裏取り
  4. 回答を作成。引用には issues/summaries のパスを併記

Lint (定期ヘルスチェック)


書式ルール(横串)


既知の課題 / 未解決事項


現在のwiki状況

全50号(w_146〜w_195, 2018-02〜2026-04, 8年余り)ingest完了。詳細は wiki/index.mdwiki/log.md を参照。

成果物: - raw/w_NNN.txt × 50(PyMuPDF抽出済み) - wiki/issues/w_NNN.md × 50(号カード) - wiki/summaries/w_NNN.md × 50(構造要約) - wiki/themes/*.md × 10(横断テーマ) - wiki/ideas/future-themes.md(連載候補22本、最優先A候補6本) - wiki_html/ — HTML版全118ページ(tools/build_wiki_html.py で生成)

編集長4代の変遷: - (w_146-w_147, 2018-02〜04) 編集長不明、石原は当時"人事研究センター長" - 石原直子 w_148(2018-06)〜w_159(2020-04)、12号 — 原則づくり・先駆性 - 佐藤邦彦 w_160(2020-06)〜w_174(2022-10)、15号 — 体系化・大規模調査 - 浜田敬子 w_175(2022-12)〜w_192(2025-10)、18号 — 社会運動・提言 - 佐々木貴子 w_193(2025-12)〜、3号 — 経営人事・統合

Works誌の5-8年テーマサイクル: 石原期の特集は5-8年後に浜田/佐々木期の大特集として回帰(10パターン確認、詳細は themes/EditorEraAnalysis.md)。

この schema 自体は運用段階にあり、継続的に修正してよい。ルール変更は log.md に記録する。