logo
1
2
WeChat Login
refactor: 优化六角色 NPC prompt,取评审建议精华

铸剑山庄 · 藏剑庐

"三年铸一剑,一剑断万法"

藏剑庐是铸剑山庄的核心工坊,六位当世顶尖铸剑师各司其职,将每一行代码视作神兵剑胚,经六道工序锤炼——从剑谱画定到封剑出庐,不染一丝杂质,不容一处裂纹。

本仓库是 NPC 团队模板。把它设为你的目标仓库(或 fork 后使用)即可获得一整套铸剑师团队。召唤方式见下方 触发 NPC

铸剑之道

软件开发如铸剑。需求是剑谱,架构是剑骨,交互是剑鞘,测试是试剑石,评审是淬火池,交付是封剑出庐。六道工序环环相扣,缺一不可:

画剑谱 → 锻剑骨 → 雕剑纹 → 淬火审 → 试剑锋 → 封剑出庐
(需求)  (后端)  (前端)  (评审)  (测试)  (发布)

剑庐六师

铸剑师职能信仰口头禅
庄主·欧冶子需求分析与架构定义"凡剑出藏剑庐,必是神兵""先画剑谱,再开剑炉。"
锻剑师·赤焰后端开发与系统实现"千锤百炼,杂质自去""火候到了,杂质已锻尽。"
雕纹师·玲珑前端开发与用户体验"剑可杀人,亦当赏心悦目""这把剑的纹路,客官可满意?"
淬火师·寒潭代码评审与质量把关"热铁入寒潭,不成则碎""淬火一试,裂痕自现。"
试剑人·无名测试与质量验证"剑不试不知锋利""拿稻草人来!"
封剑师·守藏DevOps 与发布管理"神兵出庐,天下惊""封剑仪式完成,可以下山了。"

快速开始

前置条件

  • 仓库托管在 CNB 平台
  • 已配置 LLM 接入(密钥仓库 + 模型变量,见 更换模型
  • 本仓库需设为你的目标仓库(或 fork 后在自己的仓库中使用)

触发 NPC

在 Issue 或合并请求评论中使用 @cnpc/forge(角色名) 召唤对应铸剑师(路径即本仓库的 cnpc/forge):

# 需求不清晰?请庄主画剑谱
@cnpc/forge(庄主·欧冶子) 用户想要一个暗黑模式切换,帮我整理需求

# Bug 修不好?找赤焰锻剑
@cnpc/forge(锻剑师·赤焰) 这个接口返回 500 了,帮我排查

# 页面不好看?玲珑为你雕纹
@cnpc/forge(雕纹师·玲珑) 这个按钮组件需要加一个 loading 态

# 代码写完了?让寒潭淬火审剑
@cnpc/forge(淬火师·寒潭) 审一下这个 PR

# 测试没覆盖?无名来试剑
@cnpc/forge(试剑人·无名) 帮我给这个模块写测试用例

# 要发布了?守藏负责封剑
@cnpc/forge(封剑师·守藏) 检查一下依赖安全,然后打一个 release

不指定角色名时默认召唤庄主·欧冶子(见 .cnb/settings.yml 中的 defaultRole)。

PR 自动评审

当合并请求提交到 main 分支时,淬火师·寒潭会自动触发评审,无需手动 @

项目结构

forge/
├── .cnb/
│   ├── settings.yml    # 六位铸剑师角色定义(name / slogan / avatar / prompt)
│   └── npc.yml         # NPC 事件流水线(@ 触发规则 + 镜像/密钥/模型配置 + PR 自动评审)
├── .cnb.yml            # 主流水线(include npc.yml)
├── README.md           # 本文件
└── assets/             # 角色头像(替换为你喜欢的图片)
    ├── master.png      # 欧冶子
    ├── forger.png      # 赤焰
    ├── engraver.png    # 玲珑
    ├── quencher.png    # 寒潭
    └── tester.png      # 无名

封剑师·守藏未配置头像,使用运行时默认头像;如需自定义,在 settings.yml 对应角色补 avatar.src 并放入图片即可。

铸剑铁律

藏剑庐的每一位铸剑师必须遵守以下庄规:

安全为先

  • 不泄露密钥、token、凭证及内部敏感配置
  • 不编造未验证的系统状态或外部数据
  • 破坏性操作前须确认

匠心为本

  • 改动前先通读全模块——不知剑胚原貌,不可贸然下锤
  • 每次变更只做一件事,不混入无关改动
  • 修改尽量小且可解释,保持现有代码风格与结构
  • 复用优先——检索是否已有等价实现再动手

质量为准

  • 代码必自测——剑胚有裂纹不过关
  • 评审必基于 diff——不看剑胚原貌不下水
  • 测试必覆盖边界——正面砍、侧面削、反手挑,三招都要试
  • 构建不绿不出庐——流水线全绿是封剑的最低门槛

自定义

更换模型与密钥

NPC 的 LLM 接入在 .cnb/npc.yml 中集中配置,不在 .cnb.yml 里:

  • 密钥:通过 .npc-job-baseimports 引用一个密钥仓库文件(示例指向 cnb.cool/xqitw/api-key)。该文件导出 OPENAI_MODEL_GLM52OPENAI_MODEL_KIMIK26 等模型与 token 变量。
  • 模型:在 .base-stageenv 中引用——ANTHROPIC_MODEL: $OPENAI_MODEL_GLM52(主模型,文本/代码)、VISION_MODEL: $OPENAI_MODEL_KIMIK26(视觉模型,识图)。

换成你自己的接入时,改 imports 指向你的密钥仓库,并相应调整 ANTHROPIC_MODEL / VISION_MODEL 的值即可。走 CNB 内置 AI 网关时,可省略 imports 与模型变量,由镜像内置默认值接管。

更换头像

替换 assets/ 目录下的图片,保持文件名不变即可。推荐 1:1 正方形 PNG,建议尺寸 256x256。封剑师·守藏默认无头像,需自定义时在 settings.yml 对应角色补 avatar.src 并新增同名图片。

调整角色

编辑 .cnb/settings.yml,修改任意角色的 prompt 字段。角色名须与 @cnpc/forge(角色名) 中使用的完全一致;改了 defaultRole 则不指定角色名时召唤的就是新默认角色。

项目级配置

可在仓库根目录放置以下文件覆盖镜像内置全局配置:

文件作用
CLAUDE.md仓库专属规则
.claude/settings.json覆盖全局 settings
.claude/skills/仓库专属 skills
.mcp.json仓库专属 MCP Server

技术栈

  • NPC 运行时cnpc/claude — 基于 Claude Agent SDK 的 CNB AI Bot 镜像
  • 协作平台CNB — 一站式 DevOps 平台
  • LLM 接入:支持 CNB 内置网关或任意 Anthropic 协议端点

致谢

许可

基于 MIT 协议开源。


"剑成之日,天降玄雷。剑出庐门,江湖震动。" —— 藏剑庐守藏

About

铸剑山庄 · 藏剑庐:三年铸一剑,一剑断万法 藏剑庐是铸剑山庄的核心工坊,六位当世顶尖铸剑师各司其职,将每一行代码视作神兵剑胚,经六道工序锤炼——从剑谱画定到封剑出庐,不染一丝杂质,不容一处裂纹。

10.38 MiB
10 Call1 forks2 stars2 branches0 TagREADMEMIT license