@nathan33/nao-skill
nao 多角色 AI 开发舰队(仅 pi):角色卡 / 技能 / 协作协议 / 工具链,一键接入项目
Package details
Install @nathan33/nao-skill from npm and Pi will load the resources declared by the package manifest.
$ pi install npm:@nathan33/nao-skill- Package
@nathan33/nao-skill- Version
0.22.5- Published
- Nov 7, 2026
- Downloads
- 4,135/mo · 1,995/wk
- Author
- cznathan
- License
- MIT
- Types
- extension, skill
- Size
- 419.8 KB
- Dependencies
- 0 dependencies · 0 peers
Pi manifest JSON
{
"skills": [
"./.agents/skills/nao-fleet/SKILL.md",
"./.agents/skills/frontend-design/SKILL.md"
],
"extensions": [
"./.agents/extensions/nao-role-agents.mjs"
]
}Security note
Pi packages can execute code and influence agent behavior. Review the source before installing third-party packages.
README
前置环境 · 三步装好 · 第一次跑起来 · 七个角色 · 常见问题 · 想深入
nao-skills 是一套 角色卡 + 协作规矩 + 小工具。装上以后,你的项目里会有 7 个分工明确的 AI 会话——产品经理负责拆需求、派活、验收;架构师把关方案;设计师管界面与交互;前端、后端、测试各自干活;工程基座管构建发布与治理。你只做两件事:回答问题、点确认。
推荐配合模型:
deepseek-v4.1-flash。 舰队是 7 个常驻会话 + 长链路交接(派活 → 回执 → 验收),这个模型在长上下文稳定性和单轮成本上实测最省心;换成别的模型也能跑,只是纪律遵守与回执质量会有差异。
前置环境
不满足就装不起来。
nao 只支持 pi。 不为其他编程 Agent(Claude Code / Codex / Cursor 等)做适配,也不承诺在那类工具里能用——多会话派活、回执、回收整套机制都建立在 pi 之上。
除 pi 之外还需要:
- pi ≥ 1.4.0 —— 舰队依赖它的多会话能力,版本低了体检直接报红。
- tmux —— 7 个角色会话在你当前窗口里分屏跑;
ensure/status/close都必须在 tmux 会话内执行。 - Node.js ≥ 18 —— 命令入口是 Node 脚本。
- git(建议顺手装 GitHub CLI
gh)—— 分支、PR、发版都走它;没有gh时这些步骤降级成手动/本地操作,流程不变。
30 秒自检:
pi --version && tmux -V && node -v && git --version
缺了什么都能在第一步装:pi 见 pi.dev,tmux 用系统包管理器(brew install tmux / apt install tmux),Node 用 nvm 或系统包管理器。
它解决什么问题
一个人对着 AI 写代码,常见三个毛病:
| 毛病 | nao-skills 的做法 |
|---|---|
| 一个会话什么都干,聊到后面就糊涂了 | 拆成 7 个专业角色,各管一段,互不干扰 |
| 需求没问清楚就开写,写完发现不对 | PM 先追问、写清 PRD 和目标,你点头才开工 |
| 干完不知道算不算干完 | 每个任务必须「回执」并按清单自查,PM 逐条验收才归档 |
三步装好
装好上面的前置(pi / tmux / Node)。
把机制装进你的项目(项目级;版本 pin 在仓库里,团队 clone 即得同款):
cd 你的项目 pi install --local npm:@nathan33/nao-skill@0.21.3 # 声明 pin,并把机制包物化到项目内 .pi/npm npx @nathan33/nao-skill init # 写入转发入口 shim + 生成 AGENTS.md装协作插件(多会话派活必需):
npx @nathan33/nao-skill plugins install-all
升级同理:改 .pi/settings.json 里的 pin 版本,再 pi update --extensions。机制以 npm 包为准,项目里只有转发入口,不需要你手动同步文件。
第一次跑起来
cd 你的项目
.agents/scripts/nao-fleet.sh check # 体检:exit 0 就能开工
.agents/scripts/nao-fleet.sh ensure pm arch rd-fe rd-be qa rd-infra uiux # 在当前 tmux 窗口里拉起 7 个会话
角色名可以写别名或规范名(两者等价):arch = arch-designer、infra = rd-infra;上例混用也照常拉起。完整别名见 .agents/roles.yaml 或 nao-fleet.sh --help。
然后在 PM 会话里说需求就行,剩下的它自己流转。大概长这样:
你:想加个「导出 CSV」功能
PM:问几个问题 → 给出 PRD + 优先级 + 开工确认卡
你:开工
PM:拉起缺的角色 → 让 qa 先写用例 → 指派给 rd-be
rd-be:(做完)[T1] done | 测试:npm test exit=0 128例/0红 | PR #12
PM:在 PR 核 AC 并评论 → 验收通过(授权合并)→ rd-be squash 合并 → 归档 docs/prds/ → 回收派生会话
每个任务完成后都能在 docs/ 里找到痕迹(PRD、任务状态、回报),不依赖聊天记录——所以会话聊久了可以直接重开,不会丢事。
七个角色
| 角色 | 帮你干什么 |
|---|---|
| 产品经理 | 澄清需求、调研同类产品形态、写 PRD、定优先级、派活、验收、归档、管 Issue 与发版(唯一的调度者,不写代码、不合并) |
| 架构师 | 技术选型与方案评审(对照业界成熟模式,写明为何不采纳),出 ADR,评影响面 |
| UI/UX 设计师 | 信息架构、交互流程、视觉规范与 token、状态与断点、可用性与无障碍;无原型工具时按降级阶梯交文字规格 / 线框,不阻塞 |
| 前端 / 后端研发 | 各自实现,写完自己跑测试再回执 |
| 工程基座 | CI 与流水线、构建/发布工具、脚本与守卫、依赖与安全告警升级、仓库治理 |
| 测试工程师 | 按验收标准出用例、跑门禁、报缺陷 |
不想要哪个角色,删掉对应文件即可;只留 PM + 一个研发角色也能跑。
常见问题
会改我的代码库吗? 只会新增项目根 AGENTS.md、.pi/settings.json,以及一个转发入口 .agents/scripts/nao-fleet.sh;角色卡、清单、技能这些机制文件都在依赖包内,不铺进你的仓库,也不碰你原有文件(已有 AGENTS.md 时是合并追加,不覆盖)。
除了 pi,能配别的编程 Agent 吗? 不能。机制文件本身是 Markdown,理论上别的工具也能读,但 nao 的派活 / 回执 / 回收全依赖 pi + pi-intercom,其他 Agent 不在支持范围内。
它会在 GitHub 上开 PR 吗? 会——每个需求一条分支、一个 PR(Draft 早开、CI 早跑),你确认验收后由研发角色 squash 合并,main 上只留 1 条可读提交。没有远端或 gh 时降级为本地分支,流程不变。
跑完的会话要留着吗? 派生会话验收完就回收:nao-fleet.sh close --task T1 rd-be(等价写法 nao-fleet.sh close rd-be-T1,直接用派生会话名即可);常驻角色留着复用。nao-fleet.sh status 会提示哪些是残留。目标在别的项目里也能回收——定位不到时会非 0 退出并打印诊断,不会假装已回收。
为什么一定要 tmux? 它同时解决三件事:布局可控(三种布局自动排布,不会把桌面铺满一圈窗口)、句柄完整(status 查残留、close 跨项目回收都靠会话名册与 pane 标题定位)、SSH 可用(没有图形环境也能拉起整套舰队)。
它会自己上网查吗? 会,但有分工:产品经理查同类功能的产品形态(功能点、属性、视图、协作方式),架构师对照业界成熟的架构模式。两者都必须把来源和「适不适用于本项目」落成文件(docs/research/),抓来的网页内容不进聊天记录;技术选型仍只由架构师定。
装完之后项目里多了什么?
你的项目/
├── AGENTS.md # 项目级约定(PM 维护,AI 每次都会读)
├── .github/ # PR 模板(PM 建,GitHub Flow 用)
├── .pi/
│ ├── settings.json # 记录机制包的 pin 版本(进仓库)
│ └── npm/ # pi 把机制包物化在这里(pi 自建 gitignore,不提交)
└── .agents/
└── scripts/
└── nao-fleet.sh # 转发入口(shim):自动定位包内机制并转发
为什么它省 token
和 AI 聊天,钱花在「它每轮要读多少字」。所以每一个角色卡只留最硬的红线,细节放到用到时才读的文件里;任务状态写在 docs/ 而不是聊天记录里,会话重开先读文件恢复状态;查代码用 CodeGraph 索引一次拿到相关代码块(可选,不装就回退 grep + 行段读取)。
一句话概括定位:这是在给 AI 做「上下文工程」——决定每个会话该看到什么、不该看到什么;在这之上再叠了多会话协作和交付纪律。它自己不跑 AI,产出的是给 AI 读的 Markdown。
想深入
| 想看什么 | 去哪看 |
|---|---|
完整安装手册:CodeGraph 资源口径、按需角色 --card、tmux 布局、老项目迁移、CI / 离线、完整性判据 |
docs/INSTALL.md |
| 整体架构、分层与设计取舍 | docs/ARCHITECTURE.md |
| 派活 / 回执 / 忙闲与回收规矩 | $NAO_SKILLS/.agents/common/intercom-protocol.md |
| 输出格式与回执红线 | $NAO_SKILLS/.agents/common/output-format.md、$NAO_SKILLS/.agents/checklists/comm-templates.md |
| 角色怎么定义 | $NAO_SKILLS/.agents/prompts/*.md |
| 各角色的红线与交付清单 | $NAO_SKILLS/.agents/checklists/*.md |
| 工具命令 | bash .agents/scripts/nao-fleet.sh --help(转发入口) |
| 项目自己的约定 | 项目根 AGENTS.md |
$NAO_SKILLS 指机制包根目录(会话里 fleet 会自动注入该变量),也就是 npm 包 @nathan33/nao-skill 的安装位置。
License
MIT © 2026 Nathan Lee