「ドキュメントを書くことは、未来の自分への投資である」。
しかし、投資先がゴミ屋敷になっていたらどうでしょう? 検索しても古い仕様書や廃止された手順書ばかりがヒットする――。そんな「ドキュメントの肥大化」は、開発チームのベロシティを確実に殺します。
今日は、Kibelaをただの「書き捨ての場所」から「生きたナレッジの泉」へと変貌させる、情報の断捨離(アーカイブ)自動化フローについてお話しします。
—
1. なぜ「アーカイブ」が最強の武器なのか
Kibelaのようなツールで最も恐ろしいのは、「何が正解か分からない状態」です。
情報が古くなっても削除をためらうと、検索結果に古い情報がノイズとして混じり、エンジニアの認知負荷を増大させます。
「アーカイブ」の本質は、捨てることではなく「検索の解像度を上げること」です。
現役の情報だけを検索対象にすることで、チームの意思決定スピードは劇的に向上します。
—
2. 【基礎セットアップ】まずは「情報の寿命」を定義せよ
自動化の前に、まずは「情報の賞味期限」を管理するルールを決めましょう。
1. グループごとのルール設定:
- `#PJ/進行中`: 3ヶ月更新がないものは要確認。
- `#Tips/技術共有`: 1年更新がないものは自動アーカイブ。
2. グループタグの活用:
- すべてのドキュメントに、その記事が「どの期間有効か」を示すタグ(例: `期限:2024Q4`)を付与する運用を始めます。
—
3. 【自動化の核心】Kibela APIで「情報の断捨離」を実装する
「定期的にアーカイブ作業をする」なんて人間がやってはいけません。忘れ去られるのがオチです。
GitHub ActionsとKibela APIを組み合わせ、「最終更新から一定期間経過した記事を自動でアーカイブする」仕組みを作りましょう。
HelloWorld的・自動化スクリプト (`archive.py`)
まずはこのスクリプトをGitHub Actionsで定期実行(Cron)させるのが、最も精度の高い自動化への第一歩です。
import requests
import datetime
設定情報(環境変数から読み込むのがベスト)
API_TOKEN = “YOUR_KIBELA_TOKEN”
TEAM_NAME = “YOUR_TEAM_NAME”
HEADERS = {“Authorization”: f”Bearer {API_TOKEN}”}
最終更新から90日経過した記事を狙い撃つ
THRESHOLD_DAYS = 90
def get_old_notes():
# 記事一覧を取得(GraphQL APIを使用)
query = “””
query {
notes(first: 100) {
nodes {
id
updatedAt
title
}
}
}
“””
# 実際の運用ではAPIへPOSTリクエストを送信
# … (API連携処理)
return notes
def archive_note(note_id):
# アーカイブを実行するMutation
mutation = f”””
mutation {{
archiveNote(input: {{ id: “{note_id}” }}) {{
note {{ title }}
}}
}}
“””
print(f”Archiving: {note_id}”)
実行ロジック
for note in get_old_notes():
updated_at = datetime.datetime.fromisoformat(note[‘updatedAt’])
if (datetime.datetime.now() – updated_at).days > THRESHOLD_DAYS:
archive_note(note[‘id’])
セットアップ手順
1. トークンの発行: Kibelaの「個人設定」>「アクセストークン」から発行。
2. GitHub Actionsの作成: `.github/workflows/clean-kibela.yml` を作成。
- `schedule: – cron: ‘0 0 1’` (毎週月曜の朝にクレンジング実行)
3. 動作確認: 最初は `print` 文だけで、どの記事がアーカイブ対象になるかログを出力して確認してください。いきなりアーカイブさせないのが、安全なエンジニアリングの基本です。
—
4. 運用を定着させる「知的な習慣」
自動化を導入する際、最も大切なのはチームメンバーへの配慮です。
- 「アーカイブ=削除」ではないと周知する:
「アーカイブしても検索には引っかかります。ただ、検索のデフォルトから外れるだけです」と伝えましょう。心理的障壁が消えます。
- 「更新」の文化を作る:
自動アーカイブされたら通知が飛ぶように設定し、必要であれば「再アクティブ化」して内容を更新するサイクルを作ります。
—
最後に:あなたのチームのベロシティのために
情報の断捨離は、単なる片付けではありません。「今のチームにとって何が真実か」を常にアップデートし続ける、守りの要です。
この仕組みを導入すれば、新しく入ったメンバーが古い情報に惑わされる時間はゼロになります。
「検索すれば、必ず最新の正解がある」。この安心感こそが、エンジニアがコードに没頭できる最高のアジャイル環境です。
さあ、今日から「情報の断捨離」を始めましょう。あなたのチームが、より本質的な開発に集中できることを願っています!