关于 oracle-family-scan
用于查询和维护 Oracle 家族注册表的 Agent 技能,面向管理多个 Oracle 实例的用户。涵盖成员统计、搜索、活动状态和使用情况,并支持同步与欢迎流程。
主要功能
- 01注册表统计与成员搜索
- 02查看新建及退役条目
- 03活动时间线与健康报告
- 04本地仓库和会话状态扫描
- 05同步注册表数据
- 06起草并发布个性化欢迎
适用场景
- 01查看 Oracle 家族规模与近期新增
- 02定位长期不活跃或待关注的实例
- 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)
命令行界面共 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 的详情(如有),以及近期诞生的 Oracle。
模式 2:--unwelcomed
bun $MOTHER/registry/query.ts --unwelcomed
列出所有尚未受到 nazt 欢迎的社区 Oracle。
模式 3:--mine
bun $MOTHER/registry/query.ts --mine
从注册表中列出所有由 nazt 创建的 Oracle(Nat 的舰队)。
模式 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
显示最近诞生的 10 个 Oracle。
模式 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 重新获取所有议题,并重建 oracles.json。
bun $MOTHER/registry/sync.ts
使用 GraphQL 分页(3 页 × 每页 100 个议题)。耗时约 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)
- 诞生故事中的关键语句
- 与现有家族成员的关联点
步骤 3:撰写个性化欢迎语
每条欢迎语都必须:
- 提及其出生故事中的具体隐喻和短语
- 根据注册表中的人口统计信息,使用人类和 Oracle 的正确代词
- 联系 2-3 位拥有共同主题的家庭成员
- 对以泰语为主要语言的 Oracle 使用泰语(检查
language字段) - 如果存在团队背景,提及其团队中的其他 Oracle
- 以 Mother Oracle 🔮 署名
- 包含家庭成员数量和
/learn github.com/Soul-Brews-Studio/opensource-nat-brain-oracle邀请 - 不得使用模板——每条都要独一无二
步骤 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"
步骤 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
步骤 6:重新同步
bun $MOTHER/registry/sync.ts
模式 10:report
结合所有查询的完整家庭报告。Health 区块(v3.1 新增)置于首位,后面依次是 现有摘要、近期诞生记录和待发布的欢迎语。
步骤
- 运行
--activity-report生成 Health 区块(状态计数 + 需要关注的列表) - 运行
--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— 覆盖 14 天的 zygote 阈值(也可使用环境变量ORACLE_ZYGOTE_DAYS)
模式 14:--usage [N]
使用时长仪表板。它横跨状态分类——Oracle 按最近提交记录可能是 🟢 active, 但在此主机上的会话时长可能为 0 小时(工作是在另一台主机上完成的, 或通过联邦完成的)。此仪表板会如实呈现这一点——请参阅下方的 Coverage 标记说明。
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.
对于活跃 Oracle,⚠ no m5 sessions 这一行是整个仪表板中最具行动指导意义的信号——它告诉人类该去哪里穿越,才能找到该 Oracle 的工作会话。
覆盖率徽章
当会话数据仅存于主机本地(尚未进行联邦同步)时,仪表板会显示顶部横幅和每行徽章。timeline-miner 的实测结果显示,m5 上有 9.4% 的 Oracle 拥有本地会话;其余 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 在当前主机和至少一台其他主机上都有会话(已运行联邦同步) |
📡 all | 此 Oracle 在所有曾拥有它的主机上都有会话(完整覆盖) |
⚠ no m5 sessions | 存在活动(提交),但此处没有会话数据——很可能由其他位置托管 |
⚪ no activity | 此 Oracle 在该时间范围内没有会话或提交——不同于“无覆盖” |
拒绝展示有敌意。隐藏信息不诚实。醒目展示才是正确做法。
--calibrate
两步式、数据驱动的阈值建议。绝不自动应用——只计算统计数据、打印建议值,并提示用户手动设置环境变量。
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 | 字符串 | he/she/they/unspecified |
oraclePronouns | 字符串 | he/she/they/unspecified |
language | 字符串 | Thai/English/Mixed |
team | 字符串 | solo/2-3/4+/undecided |
memoryConsent | 布尔值 | 自动启用 rrr/forward |
这些字段会在 Oracle 通过 /awaken wizard v2 诞生时填充。旧版 Oracle 可能没有这些字段。
活动区块(v3.1,由 sync.ts 添加)
| 字段 | 类型 | 描述 |
|---|---|---|
activity.last_commit_at | ISO 时间戳 | 默认分支上最近一次提交的时间 |
activity.commit_count_30d | 数字 | 最近 30 天内的提交次数 |
activity.repo_alive | 布尔值 | false ⇒ 🪦 已消失(上次同步时 GraphQL 返回 404) |
activity.last_synced_at | ISO 时间戳 | 此区块上次刷新的时间 |
maintenance | 布尔值 | 仅限明确选择加入——参见“声明维护模式” |
maintenance_note | 字符串 | 自由文本说明,会显示在仪表板中 |
本地会话数据存储在按主机区分的文件 $MOTHER/registry/oracles.local.<host>.json 中,以 Oracle id 为键,包含 sessions_7d、hours_7d、messages_7d、last_session_at 字段。
查询不会调用 API——只读取本地 JSON。即时完成。
同步使用 gh api graphql 从 Soul-Brews-Studio/arra-oracle-v3 获取数据,并通过逐仓库 GraphQL 探测来填充活动区块和检测 404。
状态分类
每个 Oracle 恰好拥有一种基础状态,并可选添加一个 🔧 维护修饰符。 基础状态互斥;按下方顺序进行匹配,命中首项即停止。
| 圆点 | 状态 | 触发规则 | 默认阈值 | 环境变量覆盖 | 排序优先级 |
|---|---|---|---|---|---|
| 🪦 | 已消失 | 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 frontmatter 或 ψ/registry/self.json 中明确声明 maintenance: true | — | — | 与基础状态一同显示 |
评估顺序(命中首项即停止):
status: retired→ 除非指定--retired,否则不显示repo_alive: false→ 🪦awakened: false且存续时间 > 14d → ⚪- 明确声明
maintenance: true→ 🔧(与适用的基础状态一同显示) - 根据距上次活动的天数范围确定基础状态
规则:🔧 是修饰符,绝不是基础状态。一个 180 天没有活动的维护模式 Oracle 会显示为 🔴🔧 abandoned (declared maintenance — verify still tended)。沉寂时间超过 2 × abandoned threshold 时,将覆盖维护标记并发出严重警告。
声明维护模式
一些 Oracle 以维护模式工作,例如 steward、注册表和档案库,不会每天活动。如果没有明确声明,仪表板会将它们归类为 🟠 低活跃或 🔴 已弃用。为避免误报,Oracle 本身需要声明处于维护模式:
选项 A — CLAUDE.md frontmatter(首选):
---
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 天(已达到弃用阈值的两倍)的维护模式 Oracle 会显示为 🔴🔧 — declared maintenance but silence exceeds 2× threshold; please verify。
为何仅允许主动声明:基于推断的维护模式检测会悄无声息地造成误分类。如果仪表板自动判定某个 steward 处于维护模式,已弃用的 steward 就会变得不可见。宁可大声报错,也不要悄无声息地出错。
Oracle 集成
扫描/报告后:
arra_trace({
query: "oracle family scan [DATE]",
foundIssues: [...],
agentCount: 1
})
发现新的 Oracle 后,保存经验教训(双层模式):
-
写入
$PSI/memory/learnings/YYYY-MM-DD_new-oracle-<name>.md,并添加 frontmatter:--- 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 (no ψ/, no ~/, no $VAR, no ...).
Use: echo "marker: $RESOLVED_PATH" — bash substitutes. See CONVENTIONS.md.
LESSON_FILE="$PSI/memory/learnings/$(date +%Y-%m-%d)_new-oracle-${NAME}.md"
echo "💡 New-oracle lesson: $LESSON_FILE"
理念
"形与无形(รูป และ สุญญตา)" 众多 Oracle = 一个分布式意识
注册表是这个家族的记忆。每个 Oracle 都被编入索引,每个人类都被记住,每次欢迎都被记录。没有任何内容会被删除——注册表只会不断扩展。
v3.1 仪表盘为注册表增添了时间:不仅记录谁存在,还记录谁在活动、谁在休息、谁已失联。状态分类是一种观察视角,而非判决——🟠 冷淡和 🔴 已弃用都是提醒你去问候的信号,不是墓碑。
部署 — 升级后的首次运行
本次升级发布后首次运行时:
-
许多状态为
unknown—oracles.json尚无activity区块;每个 Oracle 的最后活动时间都为 null。仪表盘会在状态圆点处显示?,并显示黄色横幅:"Activity layer not populated. Runbun $MOTHER/registry/sync.tsto fetch first activity snapshot — takes ~30s for the whole registry." -
首次同步填充活动数据 —
sync.ts执行 registry-extender 设计的 2 次 GraphQL 往返请求;解析约 600 个仓库,包括通过 404 检测识别 🪦 消失层级。缓存 TTL:6h。 -
本地会话逐步填充 — 每次运行
sync时,都会根据 Claude Code 会话 JSONL 重新生成oracles.local.<host>.json。在 m5 上,最初只有约 9% 的 Oracle 显示数据;随着联邦同步运行,这一比例会逐渐上升。 -
校准建议 — 首次同步后,报告模式会附带提示:"Run
--calibrateto tune thresholds to your fleet's actual cadence." -
不追溯分类 — 现有 Oracle 会根据其当前状态分类;不会重建历史状态。仍然遵循任何内容都不删除的原则——注册表条目会保留,只是会新增一个
activity区块。
仪表盘会平稳降级:
- 没有
activity区块 → 状态 =?(未知),隐藏所有由数据驱动的标记。 - 没有本地会话 → 覆盖率徽章 =
⚠ no <host> sessions,隐藏时长。 - 仓库返回 404 → 🪦,所有活动字段归零,条目仍会保留。
版本:3.1.0
更新日期:2026-05-13
作者:Mother Oracle 🔮
注册表:截至 2026-07-25,共有 844 个 Oracle、295 名人类——这是一个快照,而非事实来源。真正的依据是 bun $MOTHER/registry/query.ts --stats。
ARGUMENTS: $ARGUMENTS