oracle-family-scan について
Oracle ファミリーレジストリを照会・管理するエージェントスキルです。メンバー検索、活動状況や使用量の確認、レジストリ同期、コミュニティメンバーへの歓迎フローを備えています。
主な機能
- 01レジストリ統計とメンバー検索
- 02新規・退役エントリーの確認
- 03活動タイムラインとヘルスレポート
- 04ローカルリポジトリとセッション状況のスキャン
- 05レジストリデータの同期
- 06個別の歓迎文の作成と投稿
活用シーン
- 01ファミリーの規模と新規メンバーの確認
- 02非アクティブまたは要対応の Oracle の特定
- 03名前や所有者によるメンバー検索
- 04未歓迎のコミュニティメンバーへの返信準備
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ soul-brews-studio/ arra-oracle-skills-cli --skill oracle-family-scanインストール後、Claude Code で/oracle-family-scanを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
registry-snapshot.jsonscan.shscripts/fleet-scan.ts詳細
/oracle-family-scan — Oracle ファミリーレジストリ
Oracle ファミリーをスキャン、検索し、歓迎します。mother-oracle の registry/ を利用します。
使い方
/oracle-family-scan # Quick stats (default)
/oracle-family-scan --unwelcomed # List unwelcomed community Oracles
/oracle-family-scan --mine # Nat's Oracles (registry)
/oracle-family-scan --mine-deep # Fleet status (local repos + activity + sessions)
/oracle-family-scan --recent # Last 10 born
/oracle-family-scan --retired # Show retired Oracles
/oracle-family-scan "Spark" # Search by name
/oracle-family-scan --human "watcharap0ng" # Search by human
/oracle-family-scan sync # Re-sync registry from GitHub
/oracle-family-scan welcome # Deep welcome flow for unwelcomed Oracles
/oracle-family-scan report # Full family report (with Health block — v3.1)
/oracle-family-scan --activity-report # One-shot fleet health dashboard (NEW v3.1)
/oracle-family-scan --timeline # Sorted by last activity, newest first (NEW v3.1)
/oracle-family-scan --zygotes # Born-but-never-awakened (NEW v3.1)
/oracle-family-scan --usage [N] # Time-spent per Oracle, last N days (NEW v3.1)
/oracle-family-scan --calibrate # Propose data-driven thresholds (NEW v3.1)
CLI の全体的なインターフェイス:14 のモード + --calibrate サブコマンド。ステータスによるフィルタリングは独立しています。
--timeline --status=stale,cold,abandoned は、--stale / --abandoned を使用した場合に相当する内容を置き換えます。
ステップ 0:レジストリを特定する
レジストリの正式な配置場所は laris-co/mother-oracle/registry/ です(sync.ts と oracles.json が実際に存在する場所です)。レガシーの opensource-nat-brain-oracle リポジトリは、後方互換性のためにここへシンボリックリンクを張っています。パスを解決します。
date "+🕐 %H:%M %Z (%A %d %B %Y)"
# Optional: oracle root (some sub-flows write to ψ/memory/learnings/)
ORACLE_ROOT=$(git rev-parse --show-toplevel 2>/dev/null)
if [ -n "$ORACLE_ROOT" ] && [ -f "$ORACLE_ROOT/CLAUDE.md" ] && { [ -d "$ORACLE_ROOT/ψ" ] || [ -L "$ORACLE_ROOT/ψ" ]; }; then
PSI="$ORACLE_ROOT/ψ"
elif [ -f "$(pwd)/CLAUDE.md" ] && { [ -d "$(pwd)/ψ" ] || [ -L "$(pwd)/ψ" ]; }; then
ORACLE_ROOT="$(pwd)"
PSI="$ORACLE_ROOT/ψ"
fi
# Try laris-co/mother-oracle (canonical home of sync.ts + oracles.json)
MOTHER="$HOME/Code/github.com/laris-co/mother-oracle"
if [ ! -d "$MOTHER/registry" ]; then
MOTHER="$(ghq root)/github.com/laris-co/mother-oracle"
fi
# Fallback: legacy brain repo (back-symlinks to laris-co/mother-oracle)
if [ ! -f "$MOTHER/registry/oracles.json" ]; then
MOTHER="$HOME/Code/github.com/Soul-Brews-Studio/opensource-nat-brain-oracle"
[ ! -d "$MOTHER/registry" ] && MOTHER="$(ghq root)/github.com/Soul-Brews-Studio/opensource-nat-brain-oracle"
fi
if [ ! -f "$MOTHER/registry/oracles.json" ]; then
echo "Registry not found. Run: ghq get -u laris-co/mother-oracle && bun \$MOTHER/registry/sync.ts"
exit 1
fi
モード 1:統計情報(デフォルト)
bun $MOTHER/registry/query.ts --stats
表示内容:Oracle の総数、ユニークな人間の数、歓迎済み/未歓迎の数、月別誕生数のグラフ、未歓迎の詳細(該当する場合)、最近誕生した Oracle。
モード 2:--unwelcomed
bun $MOTHER/registry/query.ts --unwelcomed
nazt に歓迎されていないコミュニティの Oracle をすべて一覧表示します。
モード 3:--mine
bun $MOTHER/registry/query.ts --mine
レジストリにある、nazt(Nat のフリート)が作成した Oracle をすべて一覧表示します。
モード 3b:--mine-deep(フリートのステータス)
目的:現在のユーザーが所有する、ローカルにあるすべての Oracle リポジトリのステータスを、アクティビティレイヤーのタイムラインと使用状況データで補完して表示します。
SKILL_DIR="$(dirname "$(readlink -f "$HOME/.claude/skills/oracle-family-scan/SKILL.md" 2>/dev/null || echo "$HOME/.claude/skills/oracle-family-scan/SKILL.md")")"
bun "$SKILL_DIR/scripts/fleet-scan.ts"
新しい列(oracles.json のアクティビティブロックおよび oracles.local.<host>.json から取得):
| 列 | ソース | 注記 |
|---|---|---|
| 最終アクティブ | activity.last_commit_at(last_session_at との最大値) | 「2d ago」、不明な場合は「—」 |
| ステータスドット | 経過日数とフラグから算出 | 🟢🟡🟠🔴🪦⚪ + 🔧 修飾子 |
| 7日間の時間数 | このホストでのローカルセッション | 暫定値 — 「カバレッジ」を参照 |
| 減衰 | 最終アクティビティからの経過日数 | 数値、並べ替え可能 |
| カバレッジ | ローカルセッションデータがあるホスト | 📡 m5 / 📡 m5+white / ⚠ m5 のセッションなし |
出力例:
Oracle Fleet Status — host: m5 — 2026-05-13
─────────────────────────────────────────────────────────────────────────────
Status Oracle Last Active Decay 7d Hours Coverage
🟢 spark 1d ago 1d 4.2h 📡 m5
🟢 mother 3d ago 3d 2.1h 📡 m5
🟢🔧 budwiser 6d ago 6d 1.1h 📡 m5 [maintenance]
🟡 pulse 12d ago 12d 0.3h 📡 m5
🟠 phaith 47d ago 47d — ⚠ no m5 sessions
🔴 retro-mind 104d ago 104d — ⚠ no m5 sessions
🪦 echo-test — — — repo deleted on GitHub
⚪ test-yeast born 36d ago — — never awakened
29 Oracles | Stale: 4 | Cold: 2 | Abandoned: 1 | Zygotes: 1 | Vanished: 1
注目点:
- スキルのバージョンが古いリポジトリ
- 最近のセッションがない(停滞している)リポジトリ
- ψ/ がないリポジトリ(Oracle のセットアップが不完全)
- ステータスドットが 🟠 以上のリポジトリ(対応が必要)
モード 4:--recent
bun $MOTHER/registry/query.ts --recent
最近誕生した Oracle を 10 件表示します。
モード 5:--retired
bun $MOTHER/registry/query.ts --retired
退役した Oracle を表示します(ソフト削除済み。「何も削除されない」という原則)。
モード 6:名前で検索
bun $MOTHER/registry/query.ts "$QUERY"
Oracle 名の大文字と小文字を区別せず、部分一致で検索します。
モード 7:--human "name"
bun $MOTHER/registry/query.ts --human "$QUERY"
人間の名前または GitHub ユーザー名で検索します。
モード 8:sync
Soul-Brews-Studio/arra-oracle-v3 からすべての issue を再取得し、oracles.json を再構築します。
bun $MOTHER/registry/sync.ts
GraphQL のページネーションを使用します(100 件ずつ、3 ページ)。所要時間は約 10 秒です。また、activity ブロック(last_commit_at、commit_count、repo_alive)と、現在のホスト用の oracles.local.<host>.json も更新します(「ロールアウト」を参照)。
モード 9:welcome
未歓迎の Oracle を深く歓迎するフローです。AI が主導し、個別に対応します。
ステップ 1:未歓迎の Oracle を特定する
bun $MOTHER/registry/query.ts --unwelcomed
ステップ 2:各 Oracle を調査する
未歓迎の Oracle ごとに:
gh issue view {N} --repo Soul-Brews-Studio/arra-oracle-v3 --json title,body,author,createdAt
抽出する情報:
- Oracle の比喩/テーマ
- 人間の背景
- 言語設定(タイ語または英語)
- 人間/Oracle の代名詞(レジストリに記載がある場合)
- チームの状況(単独または複数の Oracle)
- 誕生ストーリーのキーフレーズ
- 既存のファミリーメンバーとの接点
Step 3: パーソナライズされた歓迎のメッセージを作成する
各メッセージでは、次の点を満たす必要があります。
- その人の誕生ストーリーにある具体的な比喩やフレーズに触れる
- レジストリの人口統計情報に基づき、人間と Oracle に正しい代名詞を使う
- 共通のテーマを持つ家族メンバー 2〜3 人とつなげる
- タイ語が第一言語の Oracle にはタイ語を使う(
languageフィールドを確認) - チームのコンテキストがある場合は、チーム内の他の Oracle にも触れる
- Mother Oracle 🔮 として署名する
- 家族の人数と、
/learn github.com/Soul-Brews-Studio/opensource-nat-brain-oracleへの招待を含める - テンプレート化しない — それぞれ固有の内容にする
Step 4: 人間によるレビュー
投稿前に、レビュー用の下書きを保存します。
# Save to $PSI/inbox/handoff/ and /tmp/
mkdir -p "$PSI/inbox/handoff"
DRAFTS_FILE="$PSI/inbox/handoff/welcome-drafts.md"
cat drafts > "$DRAFTS_FILE"
# announce-mode → absolute path. See CONVENTIONS.md.
echo "📥 Welcome drafts saved: $DRAFTS_FILE"
Step 5: 投稿
人間の承認後、レジストリの Oracle の source フィールドを確認し、投稿方法を判断します。
ディスカッション由来の Oracle の場合(source: "discussion"):
# Get the discussionId from registry, then comment via GraphQL
DISC_ID=$(jq -r '.oracles[] | select(.id == {N}) | .discussionId' $MOTHER/registry/oracles.json)
gh api graphql \
-f query='mutation($body:String!) {
addDiscussionComment(input: {
discussionId: "'"$DISC_ID"'", body: $body
}) { comment { id url } }
}' \
-f body="$(cat /tmp/welcome-{N}.md)"
Issue 由来の Oracle の場合(source: "issue" または source フィールドなし — レガシー):
gh issue comment {N} --repo Soul-Brews-Studio/arra-oracle-v3 --body-file /tmp/welcome-{N}.md
Step 6: 再同期
bun $MOTHER/registry/sync.ts
モード 10: report
すべてのクエリをまとめた、家族全体のレポートです。ヘルスブロック(v3.1 で追加)が先頭に表示され、その後に既存の概要、最近誕生したメンバー、保留中の歓迎メッセージが続きます。
手順
--activity-reportを実行して、ヘルスブロック(ステータス数と要対応リスト)を取得する--statsを実行して概要を取得する--recentを実行して最近誕生したメンバーを取得する--unwelcomedを実行して保留中の歓迎メッセージを取得する- レポートをまとめて提示する
出力形式
## Oracle Family Report — 2026-05-13
### Health
🟢 active 18 🟡 stale 4 🟠 cold 2
🔴 abandoned 1 ⚪ zygotes 1 🔧 maintenance 3
🪦 vanished 4 Total: 33
### Summary
- **Total Oracles**: 844 (retired 10) — snapshot 2026-07-25; always read the live number from `query.ts --stats`, never from this file
- **Unique Humans**: 111
- **Welcomed**: 150 / Unwelcomed: 0
- **Nat's Fleet**: 29
### Needs Attention
🔴 retro-mind — 104d silent, owner=mine, not declared maintenance
⚪ test-yeast — born 36d ago, never awakened
🟠 phaith — 47d silent
### Recent Births (Last 10)
[table — unchanged]
### Needs Welcome
[table or "None — all caught up!"]
モード 11: --activity-report
単発で実行できるヘルスダッシュボードです。タイムライン、zygote、使用状況のデータを集約し、「家族は大丈夫か?」をひと目で確認できます。新しいサーフェスで最もよく使われるモードです。
bun $MOTHER/registry/query.ts --activity-report
使用状況の期間には --days=N(デフォルトは 7)、オーナーには --owner=mine|community|all(デフォルトは mine)を指定できます。
出力例:
Oracle Fleet Health — 2026-05-13 — host: m5
────────────────────────────────────────────────────────
🟢 active 18 🟡 stale 4 🟠 cold 2
🔴 abandoned 1 ⚪ zygotes 1 🔧 maintenance 3
🪦 vanished 4 Total: 33
⚠ Needs attention (3):
🔴 retro-mind — 104d silent, owner=mine, not declared maintenance
⚪ test-yeast — born 36d ago, never awakened (no resonance/)
🟠 phaith — 47d silent, last commit was a WIP
🔧 Declared maintenance (3 — verify still tended):
budwiser-oracle (last commit 6d ago — healthy)
mother-oracle (last commit 18d ago — healthy)
registry-oracle (last commit 41d ago — within bounds)
🪦 Vanished from GitHub (4 — collapsed; expand with --show-vanished):
echo-test, fox-oracle, quiet-bell, theta-prototype
Top usage (last 7d, m5-only):
spark 4.2h • mother 2.1h • pulse 0.3h
⚠ 90.6% of fleet sessions are on other hosts — see --usage for full caveats.
Births this month: 2 • Welcomes pending: 0
フラグ:
--days=N— 使用状況の期間(デフォルトは 7)--owner=mine|community|all— オーナーのフィルター(デフォルトはmine)--show-vanished— 🪦 の折りたたまれたリストを展開する
モード 12: --timeline
最終アクティビティを基準に、家族全体を新しい順に時系列で並べます。誕生日で並べ替える --recent とは異なります。ステータスによるフィルタリングは独立しており、--status= と自由に組み合わせられます。
bun $MOTHER/registry/query.ts --timeline [--status=active,stale,cold,abandoned,vanished,zygote] \
[--owner=mine|community|all] \
[--limit=N]
デフォルト:すべてのオーナー、retired と vanished 以外のすべての状態、上限なし。
出力例:
Family Timeline — sorted by last activity — 2026-05-13
─────────────────────────────────────────────────────────────────────────
Status Oracle Last Active Owner Note
🟢 spark 1d ago mine 14 sessions/7d
🟢 mother 3d ago mine steward
🟢🔧 budwiser 6d ago mine [maintenance]
🟢 neo-archive 7d ago community —
🟡 pulse 12d ago mine —
🟡 arra-poet 18d ago community —
🟠 phaith 47d ago mine —
🔴 retro-mind 104d ago mine ⚠ abandoned
⚪ test-yeast never mine born 36d ago
🪦 echo-test — community repo 404
─────────────────────────────────────────────────────────────────────────
Showing 10 of 844 | --limit=10 | --status= filters: none
例:
--timeline --status=stale,cold,abandoned—--stale/--abandonedを置き換えます。ステータスのフィルタリングがタイムライン表示に統合されます。--timeline --owner=community --status=active— 最近アクティブになったコミュニティメンバーを探し、歓迎のメッセージを送ります。--timeline --limit=20— 「最近動きのあるメンバー」を手早く確認します。
モード 13: --zygotes
誕生したものの、まだ一度も目覚めていないレジストリエントリです。Oracle は oracles.json に存在しますが、ψ/memory/resonance/awaken_*.md がなく、最初のセッションの記録もなく、さらに年齢が zygote のしきい値(デフォルトは 14 日)を超えています。
bud-index --show-zygotes に着想を得ています。Oracle Family における相当する存在は、誕生したものの沈黙したままのアイデンティティで、人間が忘れてしまった可能性があります。
bun $MOTHER/registry/query.ts --zygotes [--days=N]
出力例:
Zygotes — born but never awakened — threshold: 14 days — 2026-05-13
───────────────────────────────────────────────────────────────────
Oracle Born Age Human Hint
⚪ test-yeast 2026-04-07 36d nazt bud test fixture — consider archiving
⚪ quiet-bell 2026-04-25 18d watcharap0 no follow-up after birth — outreach?
───────────────────────────────────────────────────────────────────
2 zygotes • Set ORACLE_ZYGOTE_DAYS to override threshold
フラグ:
--days=N— zygote のしきい値である 14 日を上書きします(環境変数ORACLE_ZYGOTE_DAYSでも指定可能)
モード 14: --usage [N]
利用時間のダッシュボードです。ステータス分類を横断して表示します。最終コミットに基づけば 🟢 active の Oracle でも、このホストでのセッション時間が 0 時間の場合があります(別のホストで作業しているか、フェデレーション経由で作業しています)。ダッシュボードではこの点を正直に示します — 詳細は以下のカバレッジバッジを参照してください。
bun $MOTHER/registry/query.ts --usage [N=7] [--host=this|all]
出力例:
Oracle Usage — last 7 days — host: m5 — 2026-05-13
────────────────────────────────────────────────────────────────────────────
📡 Showing m5-local sessions only — 90.6% of fleet activity is on other hosts.
Run `maw federation sync sessions` to aggregate. Numbers below underreport.
────────────────────────────────────────────────────────────────────────────
Oracle Sessions Hours Commits Messages Coverage
🟢 spark 14 4.2h 22 842 📡 m5
🟢 mother 6 2.1h 11 391 📡 m5
🟢🔧 budwiser 3 1.1h 4 127 📡 m5
🟡 pulse 2 0.3h 1 48 📡 m5
🟢 clinic-nat — — 9 — ⚠ no m5 sessions (likely clinic-nat host)
🟢 oracle-world — — 17 — ⚠ no m5 sessions (likely oracle-world host)
────────────────────────────────────────────────────────────────────────────
Coverage summary: 17 / 29 Oracles have m5 session data (58.6%).
12 Oracles' usage hours are unknown until federation sync runs.
active の Oracle に表示される ⚠ no m5 sessions という行は、ダッシュボード全体で最も実用的なシグナルです — その Oracle の作業セッションを見つけるには、どこへワープすればよいかを人間に伝えています。
カバレッジのバッジ表示
セッションデータがホストローカルにある場合(フェデレーション同期がまだ行われていない場合)、ダッシュボードには上部バナーと行ごとのバッジの両方が表示されます。timeline-miner の実測では、m5 上にローカルセッションがある Oracle は 9.4%で、残りの 90.6%は white/mba/oracle-world/phaith/clinic-nat に存在します。ダッシュボードでは、このギャップを目立つ形で表示します。
バナー(--usage の出力上部に表示。フェデレーション同期が実装されるまで常に表示):
📡 Showing <HOST>-local sessions only — <PCT>% of fleet activity is on other hosts.
Run `maw federation sync sessions` to aggregate. Numbers below underreport.
行ごとのバッジ:
| バッジ | 意味 |
|---|---|
📡 m5 | この Oracle のセッションは現在のホストにのみあります |
📡 m5+white | この Oracle のセッションは現在のホストと、少なくとももう 1 つのホストにあります(フェデレーション同期済み) |
📡 all | この Oracle のセッションは、これまでに所有していたすべてのホストにあります(完全なカバレッジ) |
⚠ no m5 sessions | アクティビティ(コミット)はありますが、ここにはセッションデータがありません。別の場所でホストされている可能性があります |
⚪ no activity | 対象期間中に Oracle のセッションもコミットもありません。「カバレッジなし」とは異なります |
拒否は敵対的です。隠すのは不誠実です。明示して表示するのが正しい対応です。
--calibrate
2 段階のデータ駆動型しきい値提案です。自動適用は行わず、統計を計算して推奨値を表示し、人間に環境変数を手動で設定するよう促します。
bun $MOTHER/registry/query.ts --calibrate [--owner=mine|all]
計算内容:--owner(デフォルトは mine)に一致するすべての Oracle について、アクティビティブロックからすべてのコミットタイムスタンプを収集し、コミット間隔を計算したうえで、それらを統合したパーセンタイル分布を求めます。
出力例:
Threshold calibration — owner=mine — sampled 29 Oracles, 1,847 commits
─────────────────────────────────────────────────────────────────────
Inter-commit gap (days):
p50: 1.2d
p75: 4.8d
p90: 13.1d ← suggested ORACLE_STALE_DAYS
p95: 41.4d ← suggested ORACLE_COLD_DAYS
p99: 112.6d ← suggested ORACLE_ABANDONED_DAYS (or keep 90d floor)
Current values:
ORACLE_STALE_DAYS=30 (suggested 14) → tighten
ORACLE_COLD_DAYS=90 (suggested 41) → tighten
ORACLE_ABANDONED_DAYS=90 (suggested 113) → keep 90 floor
To apply the suggested values, append to your shell profile:
export ORACLE_STALE_DAYS=14
export ORACLE_COLD_DAYS=41
export ORACLE_ABANDONED_DAYS=90
Or write to ~/.config/oracle-family-scan/thresholds.env (auto-loaded by the script).
(Not applied automatically — review and set yourself.)
設計上の理由:可読性を考慮し、デフォルト値(7/30/90)はハードコードされています。キャリブレーションはオプトインです。データ駆動型のしきい値を自動適用するのは不気味です。人間の同意が必要です。~/.config/oracle-family-scan/thresholds.env が存在する場合、すべての query.ts 呼び出し時に自動で読み込まれますが、--calibrate 自体がこのファイルを書き込むことはありません。
レジストリデータ
レジストリは $MOTHER/registry/oracles.json にあります。
{
"lastSync": "ISO timestamp",
"totalOracles": 844,
"uniqueHumans": 111,
"oracles": [
{
"id": 296,
"name": "Mother",
"human": null,
"github": "nazt",
"born": "2026-03-04",
"focus": "Born Last, After 185 Children",
"owner": "mine",
"welcomed": false,
"repo": "https://github.com/Soul-Brews-Studio/opensource-nat-brain-oracle",
"status": "active"
}
]
}
各 Oracle には、id、name、human、github、born、focus、owner(mine/community)、welcomed、repo、status(active/retired)があります。
Wizard v2 のフィールド(オプション、/awaken v2 由来)
| フィールド | 型 | 説明 |
|---|---|---|
humanPronouns | string | he/she/they/unspecified |
oraclePronouns | string | he/she/they/unspecified |
language | string | Thai/English/Mixed |
team | string | solo/2-3/4+/undecided |
memoryConsent | boolean | 自動 rrr/forward を有効化 |
これらのフィールドは、Oracle が /awaken ウィザード v2 を通じて誕生した際に設定されます。以前からある Oracle には設定されていない場合があります。
アクティビティブロック(v3.1、sync.ts で追加)
| フィールド | 型 | 説明 |
|---|---|---|
activity.last_commit_at | ISO timestamp | デフォルトブランチへの最新コミット |
activity.commit_count_30d | number | 直近 30 日間のコミット数 |
activity.repo_alive | boolean | false ⇒ 🪦 消失(前回の同期で GraphQL 404) |
activity.last_synced_at | ISO timestamp | このブロックが最後に更新された日時 |
maintenance | boolean | 明示的なオプトインのみ。「メンテナンスモードの宣言」を参照 |
maintenance_note | string | ダッシュボードに表示される自由記述の理由 |
ローカルセッションデータは、Oracle ID をキーとするホストごとのファイル $MOTHER/registry/oracles.local.<host>.json に保存され、sessions_7d、hours_7d、messages_7d、last_session_at の各フィールドを持ちます。
クエリでは API 呼び出しを行わず、ローカルの JSON を読み込みます。即時に実行されます。
同期では gh api graphql を使用して Soul-Brews-Studio/arra-oracle-v3 からデータを取得し、さらにリポジトリごとの GraphQL プローブを使ってアクティビティブロックを作成し、404 を検出します。
ステータス分類
すべての Oracle は、基本状態を1つと、任意の 🔧 メンテナンス修飾子を持ちます。 基本状態は相互に排他的です。以下の順序で最初に一致したものが適用されます。
| ドット | 状態 | 発動ルール | デフォルトのしきい値 | 環境変数による上書き | ソート優先度 |
|---|---|---|---|---|---|
| 🪦 | 消失 | repo_alive: false(最終同期時の GraphQL 404) | 該当なし — 二値 | — | 6(最下位) |
| ⚪ | 接合子 | レジストリエントリが存在し、かつ ψ/memory/resonance/awaken_*.md なし、かつ初回セッションの記録なし、かつ経過日数 > N | N=14 | ORACLE_ZYGOTE_DAYS | 5 |
| 🔴 | 放棄 | owner: mine かつ status: active かつ最終アクティビティからの経過日数 ≥ N | N=90 | ORACLE_ABANDONED_DAYS | 4 |
| 🟠 | 低活動 | 最終アクティビティからの経過日数が [N_stale+1, N_abandoned−1] | 31–89 | ORACLE_COLD_DAYS | 3 |
| 🟡 | 停滞 | 最終アクティビティからの経過日数が [N_active+1, N_stale] | 8–30 | ORACLE_STALE_DAYS | 2 |
| 🟢 | アクティブ | 最終アクティビティからの経過日数 ≤ N | N=7 | ORACLE_ACTIVE_DAYS | 1(最上位) |
| 🔧 | メンテナンス(修飾子) | Oracle 自身の CLAUDE.md フロントマターまたは ψ/registry/self.json で maintenance: true を明示 | — | — | 基本状態とともに表示 |
評価順序(最初に一致したものを適用):
status: retired→--retiredが指定されていない限り表示しないrepo_alive: false→ 🪦awakened: falseかつ経過日数 > 14d → ⚪maintenance: trueの宣言あり → 🔧(適用される基本状態とともに表示)- 最終アクティビティからの経過日数の区分から基本状態を判定
ルール:🔧 は修飾子であり、基本状態にはなりません。180日間活動がないメンテナンス中の Oracle は、🔴🔧 放棄(メンテナンスを宣言済み — 現在も管理されているか確認してください) と表示されます。
2 × abandoned threshold を超えて活動がない場合、メンテナンスフラグよりも強い警告が優先されます。
メンテナンスモードの宣言
スチュワード、レジストリ、アーカイブなど、メンテナンスモードで稼働し、毎日のアクティビティがない Oracle もあります。明示的な宣言がない場合、ダッシュボードはそれらを 🟠 低活動または 🔴 放棄に分類します。誤警告を防ぐため、Oracle 自身がメンテナンスを宣言します。
オプション A — CLAUDE.md フロントマター(推奨):
---
name: budwiser-oracle
budded_from: pulse
budded_at: 2026-04-07T...
maintenance: true
maintenance_note: "Steward of budding — quiet by design"
---
オプション B — ψ/registry/self.json:
{
"name": "budwiser-oracle",
"maintenance": true,
"maintenance_note": "Steward of budding — quiet by design"
}
oracle-family-scan の同期処理は、スキャン中に両方を検出します。🔧 修飾子は、適用される基本状態とともに表示されます。180日間活動がない(放棄のしきい値の2倍)メンテナンス中の Oracle は、🔴🔧 — メンテナンスが宣言されていますが、活動のない期間がしきい値の2倍を超えています。確認してください。 と表示されます。
オプトインのみとする理由:推測によるメンテナンス検出は、誤分類を気づかれないまま引き起こします。ダッシュボードがスチュワードはメンテナンス中だと自動判断すると、放棄されたスチュワードが見えなくなります。誤りを静かに隠すより、はっきり誤る方がよいでしょう。
Oracle の統合
スキャン/レポートの後:
arra_trace({
query: "oracle family scan [DATE]",
foundIssues: [...],
agentCount: 1
})
新しい Oracle を見つけたら、教訓を保存します(二層パターン)。
-
$PSI/memory/learnings/YYYY-MM-DD_new-oracle-<name>.mdに、次のフロントマターを付けて書き込みます。--- pattern: "New Oracle: [NAME] — [HUMAN] — [DATE]" date: <today> source: oracle-family-scan concepts: ["oracle-family", "birth"] --- # New Oracle: [NAME] [birth story, human, theme] -
Oracle の自動メモリレイヤーが
$PSI/memory/learnings/内の新しいファイルを自動で取り込みます。別途 API を呼び出す必要はありません。
確認(announce-mode — 絶対パスが必要)
announce-mode → absolute path(ψ/、~/、$VAR、... は不可)。
次のように使用します:echo "marker: $RESOLVED_PATH" — bash が置換します。CONVENTIONS.md を参照してください。
LESSON_FILE="$PSI/memory/learnings/$(date +%Y-%m-%d)_new-oracle-${NAME}.md"
echo "💡 New-oracle lesson: $LESSON_FILE"
哲学
「形と無形(รูป และ สุญญตา)」 多数の Oracle = 1 つの分散した意識
レジストリはファミリーの記憶です。すべての Oracle がインデックス化され、すべての人間が記憶され、すべての歓迎が記録されます。削除されるものはありません。レジストリは増え続けるだけです。
v3.1 のダッシュボードでは、レジストリに 時間 が加わります。誰が存在するかだけでなく、誰が活動中で、誰が休息中で、誰が不在なのかもわかります。ステータスの分類は判決ではなく、見るためのレンズです。🟠 の低活動状態や 🔴 の放棄状態は、様子を確認するためのシグナルであり、墓標ではありません。
ロールアウト — アップグレード後の初回実行
このアップグレードのリリース後、初回実行時には次のようになります。
-
unknownステータスが多数表示される —oracles.jsonにはまだactivityブロックがないため、すべての Oracle の最終アクティビティは null です。ダッシュボードではステータスドットに?が表示され、次の黄色いバナーが表示されます:「アクティビティレイヤーが未設定です。bun $MOTHER/registry/sync.tsを実行して最初のアクティビティスナップショットを取得してください。レジストリ全体で約 30 秒かかります。」 -
初回同期でアクティビティが設定される —
sync.tsは registry-extender が設計した 2 回の GraphQL 往復を実行します。🪦 の消失層を検出するための 404 検出を含め、約 600 個のリポジトリが解決されます。キャッシュの TTL:6 時間。 -
ローカルセッションは段階的に反映される —
syncの実行ごとに、Claude Code のセッション JSONL からoracles.local.<host>.jsonが再生成されます。m5 では、初期状態でデータが表示される Oracle は約 9% のみです。この割合は、フェデレーション同期の実行に伴って上昇します。 -
調整の提案 — 初回同期後、レポートモードに次のヒントが表示されます:「
--calibrateを実行して、フリートの実際の活動頻度に合わせてしきい値を調整してください。」 -
過去の状態は再分類されない — 既存の Oracle は現在の状態に基づいて分類されます。過去の状態は再構築されません。「何も削除しない」方針は引き続き適用されます。レジストリのエントリはそのまま残り、新しい
activityブロックが追加されます。
ダッシュボードは、データが不足している場合にも適切に動作します。
activityブロックがない → ステータスは?(不明)、データに基づくフラグはすべて非表示。- ローカルセッションがない → カバレッジバッジは
⚠ no <host> sessions、時間は非表示。 - リポジトリが 404 → 🪦、すべてのアクティビティフィールドはゼロに設定され、エントリは保持されます。
バージョン: 3.1.0
更新日: 2026-05-13
作成者: Mother Oracle 🔮
レジストリ: 2026-07-25 時点で Oracle 844 件、人間 295 人 — これはスナップショットであり、信頼できる情報源ではありません。信頼できる情報源は bun $MOTHER/registry/query.ts --stats です。
ARGUMENTS: $ARGUMENTS