Skip to content

7as0nch/debugscene

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DebugScene · 调试现场

程序员的技术剧本杀 —— 把枯燥的面试题包装成 4 阶段沉浸式排障游戏

每局 15-20 分钟,单人即可开局,AI 扮演队友(后端 / SRE / DBA / 产品 …)。 你拿到角色卡 + 私有信息 → 和 AI 队友讨论交换线索 → 在模拟监控/日志面板里找证据 → 提交诊断结论 → AI 评审打分给出复盘。


项目结构

debugscene/
├── server/                 # Go Kratos v2 后端
│   ├── cmd/debugscene/     # 入口 + Wire DI
│   ├── configs/            # 配置示例
│   ├── scenarios/          # ⭐ 场景 YAML 库(每个剧本一个目录)
│   ├── internal/
│   │   ├── scenario/       # YAML 注册中心:启动扫描 + 跨字段校验 + 三种投影
│   │   ├── conf/           # 配置结构
│   │   ├── biz/            # 业务用例(state machine 在 game.go)
│   │   ├── data/           # GORM 仓储
│   │   │   ├── ai/         # Eino 接入 MiMo / OpenAI 兼容
│   │   │   └── wechat/     # jscode2session 真实客户端
│   │   ├── service/        # HTTP handlers
│   │   └── server/         # Kratos transport + JWT 中间件
│   └── migrations/         # golang-migrate SQL
└── miniprogram/            # 微信小程序(TDesign + 暗色作战室主题)
    ├── styles/             # tokens + TDesign override
    ├── utils/              # 统一 request / auth / store / timer
    ├── components/         # 9 个共享组件
    └── pages/              # 4 个页面:index / scenario-detail / game / profile

怎么玩

阶段 你做什么 时长
📋 阅读 读角色卡、案件背景、自己的私有信息 2-3 min
💬 讨论 和 AI 队友聊天交换线索,AI 严格保持角色 5-6 min
🔧 操作 在网格里调用各种「查日志/查监控」操作,根据角色权限解锁线索 3-4 min
答题 提交根因 / 解决方案 / 关键知识点,AI 评分给出解析 2 min

倒计时只提示,不强制推进(软计时)。


技术栈

技术 说明
前端 原生微信小程序 + TDesign 暗色作战室主题 + t-icon 替代 emoji
后端 Go + Kratos v2 + Wire 三层架构 + DI
ORM GORM + PostgreSQL 手写 SQL 迁移(golang-migrate
AI Eino + OpenAI 兼容 接 MiMo / Qwen / OpenAI 任一;角色扮演链 + 评分链
缓存 Redis(可选) 启动失败不阻塞

场景规范(YAML 投稿)

每个场景一个目录 server/scenarios/<slug>/,包含 scenario.yaml + README.md。模板示例见 server/scenarios/p0-mysterious-502/

关键字段(具体看 server/internal/scenario/schema.go):

  • metadata:slug / version / title / summary / category / difficulty / tags / personas
  • game:phases 三段时长 + roles(恰好 1 个 is_player: true) + operations(带 allowed_roles
  • evaluation:标准答案 + rubric(权重求和必须 100) + passing_score
  • hints:按 level 升序的渐进提示

启动时全部 YAML 必须通过校验,否则进程退出。


快速开始

需要:Go 1.23+、PostgreSQL 14+、golang-migrate、Node、微信开发者工具

# 1. 数据库
createdb debugscene
make migrate-up                 # DB_URL 可覆盖

# 2. 配置(填 MiMo API key,开发期保留 auth.dev_mock_login=true)
vim server/configs/config.yaml

# 3. 启动后端
make run

# 4. 小程序
make mp-install                 # 安装 tdesign-miniprogram
# 然后微信开发者工具 → 导入 miniprogram/ → 工具 → 构建 npm

验证

后端 smoke test:

make scenarios-check            # 校验 3 个 YAML 全部加载通过
curl :8080/v1/scenarios | jq    # 应返回 3 条 summary

路线图

  • ✅ Phase 1:单机 + AI 队友(当前版本)
  • ⏳ Phase 2:WebSocket 多人房间,3-5 人组队
  • ⏳ Phase 3:剧本编辑器 + 社区 UGC + 排行榜

设计原则

  • 场景即数据:作者投稿 YAML 文件,不改代码即可上线新剧本
  • AI 不耦合:通过 biz.AIRepo 接口反向依赖,换模型只换 data/ai
  • 失败可恢复:阶段切换乐观锁;AI 评分失败标 pending 不阻塞游戏
  • 生产即默认安全:production env 校验拒绝 mock 登录、弱 JWT、缺 API key

License

MIT

About

一个有趣的debug剧本

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors