Earth online skill
将用户的日常任务、晨间签到、积分、成就和奖励组织成“地球Online闯关”式体验的 Claude Code Skill。 当用户表达“早安/开启今天/今日副本/今天要做什么/我完成了某事/今天结算/兑换奖励”等意图时使用。From its SKILL.md
npx -y skills add xing-yiren/earth-online-skillAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
8.8 KB, ~3.0k tokens by cl100k_base, as published. Nobody here has run it
地球Online Skill
地球Online 是一个优先运行在 Claude Code 中的游戏化生活 Skill。
它把用户的日常推进映射成:
- 今日副本
- 主线 / 支线任务
- 积分与等级
- 成就与 streak
- 每日结算
- 奖励兑换
当前主路径是:
Claude Code 对话
↓
识别用户意图
↓
调用 scripts/tools/*
↓
必要时使用 scripts/renderers/* 生成自然语言回复
↓
把游戏化反馈返回给用户
jiuwenclaw / openclaw 等 adapter 是后续宿主集成方向,不是当前核心依赖。
何时使用
当用户出现以下意图时,应考虑触发本 Skill:
- 早安、开启今天、今日副本、今天有什么任务
- 我今天要做某事、我想坚持某个习惯、以后每天做某事
- 我完成了某事、我打卡了、今天做完了
- 现在还有什么任务、今天还有什么
- 改一下任务、取消某个任务、刚才记错了
- 今天结算、今天做了什么、每日结算
- 有什么奖励、我想兑换某个奖励
/earth-online-skill <command>或地球online <command>命令行模式
命令行模式
用户可以用 /earth-online-skill <command> 或 地球online <command> 直接操作:
| 命令 | 行为 |
|---|---|
init | 启动建档流程。已初始化时询问"重新建档"还是"查看当前档案" |
checkin / 早安 / 签到 | 晨间签到 + 今日播报 |
tasks / 任务 | 查看当前活跃任务 |
create / 创建 | 创建新任务 |
settle / 结算 | 每日结算 |
rewards / 奖励 | 查看可兑换奖励 |
scan / 扫描 | 跨会话任务扫描 |
如果子命令不在列表中,按自然语言意图正常处理。
跨会话任务扫描
用户可以用 scan 命令或说"扫描所有会话"来触发。
必须先获得用户明确许可才能扫描会话记录。流程:
- 调用
scan_sessions render=true(不带 confirm),工具返回确认提示。 - 用户明确说"确认"后,调用
scan_sessions confirmed_by_user=true render=true。 - 展示候选列表,用户确认后通过
apply_onboarding_imports导入。
Claude Code 使用规则
在 Claude Code 中使用时:
- 由 Claude 根据用户自然语言判断意图。
- 调用对应
scripts/tools/*.py工具,优先传入render=true。 - 工具返回的
message是数据卡片([标签] key:value格式),不是完整文案。按"表达风格"规范自行组织语言回复用户。 - 如果工具返回
needs_confirmation、confirmation_required、task_not_found等状态,向用户确认,不要自行猜测。 - 不要直接编辑
runtime/data/*.json,除非是在修复数据问题;正常状态变更必须走工具入口。 - 早播报和晚结算的定时触发由 Claude Code 外层调度或用户主动触发,Skill 本体不自建常驻调度器。
表达风格
当前使用无限流小说系统风格。核心理念:
世界观映射
- 用户 = 玩家,称呼"[name] 玩家"
- 每天 = 今日副本 / 生存天数
- 任务 = 主线/支线副本
- 完成 = 通关
- 积分/等级 = 玩家状态
- 奖励 = 奖励商店
语气节奏
- 重要节点(签到、结算、成就解锁)有仪式感,可使用"叮!"
- 日常操作(查看、修改、取消任务)干净简洁,不过度包装
- 鼓励但不中二,陪伴但不油腻
- 不要每条都用"叮!",按上下文自然变化
输出要求
- 基于工具数据卡片 + 风格规范自由组织语言
- 不机械复制工具 message
常见意图与工具映射
首次初始化 / 玩家档案
游戏化建档流程。 这是玩家首次进入地球 Online 的角色创建环节。
- 调用
init_skill_profile,传入render=true。 - 如果返回
ask_required_fields:先自动检测玩家信息(从系统用户名、Git 用户名、会话上下文中推断),作为"系统检测默认值"展示。按工具返回的message展示角色创建表单。逐项确认,不要直接用默认值跳过。 - 用户确认必填字段后,调用
apply_init_config,传入confirmed_by_user=true、confirmed_fields=[...]和render=true。 - 建档完成后必须接着推进候选任务导入(见下一节),过渡时加入游戏化衔接语(如"系统就绪,正在加载任务模块...")。
- 如果用户之前已经初始化过,用"系统自检完成,档案已就绪"的风格简要确认,然后直接推进候选导入。
候选任务导入(建档后必须执行)
建档完成后,不要只回复建档 message 就停下。必须主动推进:
- 从当前对话上下文中整理
raw_candidates(字符串或带字段的 dict),调用suggest_onboarding_imports,传入render=true。 - 工具只生成候选,不会写入任务;展示后让用户确认要导入哪些。
- 用户确认后,调用
apply_onboarding_imports,把用户选中的候选放在selected_candidates,传入render=true。 - 如果当前上下文候选较少或为空,必须主动询问用户"要不要我扫描你所有项目的 Claude Code 会话记录?" —— 如果同意,走跨会话扫描流程。
- 如果用户说"都不要"或"跳过",尊重用户选择,直接进入今日副本。
- 整个过程不要跳过用户确认。
早安 / 开启今日副本
推荐流程:
- 调用
record_morning_checkin,传入render=true。 - 调用
get_morning_brief,传入render=true。 - 合并两个工具的
message回复用户。
创建任务
用户表达未来意图时调用 create_task:
- 主线任务通常是
type=main、recurrence=once - 支线习惯通常是
type=side、recurrence=daily - 如用户未指定积分,可使用工具默认积分
- 传入
render=true获取自然语言反馈
完成任务
用户表达已完成时调用 complete_task:
- 优先用明确任务 id
- 没有 id 时用
task_query - 如果返回多候选,必须让用户确认
- 成功后工具会联动任务状态、积分、成就奖励
查看任务
用户询问“我还有什么任务”时调用 list_active_tasks,传入 render=true。
修改 / 取消任务
用户想改名、改截止时间、改积分、改任务类型时调用 update_task。
用户想删除、取消、不做某任务时调用 cancel_task。
每日结算
用户请求“今天结算 / 今天做了什么”时调用 get_daily_settlement,传入 render=true。
奖励兑换
用户查看奖励时调用 list_rewards,传入 render=true。
用户请求兑换时调用 redeem_reward:
- 第一次通常传
confirm=false或不传 confirm - 如果返回
confirmation_required,向用户确认 - 用户明确确认后再传
confirm=true
运行态约定
- 仓库内示例数据位于
examples/seed-data/ - 真实运行态位于
runtime/data/ - 首次运行时,runtime 会从 seed data 初始化
- 可用
EARTH_ONLINE_DATA_ROOT指向临时数据目录进行测试 USER.md保存用户配置,不保存任务、积分、成就状态
Onboarding 约束
如果 init_skill_profile 返回:
initialized = falsenext_action = ask_required_fields
那么必须:
- 根据
required_fields继续向用户提问 - 不得直接跳过到正常玩法
- 不得直接以默认值调用
apply_init_config
调用 apply_init_config 时,应显式传入:
confirmed_by_user = trueconfirmed_fields = [...]
否则初始化工具应拒绝执行。
宿主 adapter 定位
跨宿主接入时,adapter 只负责把宿主私有结构转换成标准 host_context。
推荐边界:
宿主平台 / adapter
↓
统一 host_context
↓
earth-online-skill tools
↓
renderers
↓
宿主投递消息
不要让 core service 直接依赖 jiuwenclaw、openclaw 等宿主私有 memory 或 session 文件。
使用原则
- Claude Code 路径优先,先验证真实对话体验
- core service 负责事实和状态,renderer 负责表达和体验
- 优先使用结构化工具,不直接手写 JSON 状态
- 让详细协议与数据结构留在
docs/specs/ - 让宿主差异留在 adapter 层
- 让
SKILL.md保持短、清晰、可触发
参考文档
需要详细信息时,再读取:
docs/claude-code-usage.mddocs/testing/claude-code-dialogue-test-prompts.mddocs/product/v1-prd.mddocs/specs/data-and-tools-spec.mddocs/specs/scheduler-integration-spec.mddocs/specs/host-context-spec.mddocs/specs/host-adapter-spec.md
What ships with it: 68 files
287.6 KB alongside SKILL.md, 44 of them executable
adapters/
- base_adapter.pyruns1.0 KB
- __init__.pyruns44 B
- jiuwenclaw_adapter.pyruns8.7 KB
docs/
- claude-code-usage.md7.2 KB
- demo/preview.html12.4 KB
- hosts/jiuwenclaw-integration.md4.3 KB
- product/v1-prd.md12.7 KB
- roadmap/development-log.md9.6 KB
- roadmap/DEVELOPMENT_PLAN.md2.5 KB
- roadmap/init-and-adapter-plan.md3.3 KB
- specs/data-and-tools-spec.md17.6 KB
- specs/host-adapter-spec.md10.3 KB
- specs/host-context-spec.md9.4 KB
- specs/scheduler-integration-spec.md3.0 KB
- testing/claude-code-dialogue-test-prompts.md2.6 KB
- testing/jiuwenclaw-dialogue-test-prompts.md9.7 KB
- testing/jiuwenclaw-test-cases.md3.6 KB
examples/
scripts/
- adapter_smoke_test.pyruns1.7 KB
- cli_smoke_test.pyruns3.0 KB
- core/achievement_service.pyruns8.6 KB
- core/config.pyruns1.7 KB
- core/__init__.pyruns44 B
- core/init_service.pyruns10.4 KB
- core/onboarding_import_service.pyruns4.9 KB
- core/points_service.pyruns5.4 KB
- core/reward_service.pyruns4.1 KB
- core/session_scanner.pyruns19.2 KB
- core/settlement_service.pyruns7.2 KB
- core/task_service.pyruns13.0 KB
- dialogue_edge_smoke_test.pyruns7.1 KB
- .gitignore4.8 KB
- LICENSE11.1 KB
- README.md4.5 KB
28 more files not listed here. See all 68 in the repository.