Repository navigation
提案:团队模板仓库(team-template),降低新团队上手门槛 #206
Description
提案:团队模板仓库(team-template),降低新团队上手门槛
类型:Proposal / Discussion
影响面:在teamai-hubGitHub 组织下新增公开模板仓库;teamai-cli 代码零改动(首版)
背景与问题
当前 teamai init 的流程假设团队 repo 已经存在:选 scope → 输入一个已有的 team repo → clone → 注册成员。
它解决的是「团队已有组织好的 repo,新成员如何接入」。但它没有解决另一个更前置的缺口:
- 一个新团队 / 新用户,手上根本没有 team repo。
- 不知道
manifest/roles.yaml、skills/、rules/该长什么样、怎么摆。 - 只能对着 README 手搓目录结构 —— 这是当前最大的上手摩擦点。
代码确认:仓库内目前没有任何 template / scaffold 能力(import --from-org --bootstrap 是从已有 org 反向抽取,方向相反)。
目标
提供一个开箱即用的团队模板仓库。用户通过 GitHub「Use this template」一键生成自己的 team repo(history 干净、无 fork 关系),改成自己的 remote 后即可:
teamai init --repo <我的-team-repo>
# init 时选择自己的角色,只拿到对应命名空间的 skills/rules方案:两种模式,单一内容源
同时提供两种模板形态,覆盖不同上手偏好。所有模板仓库统一落在 teamai-hub GitHub 组织下。
| 模式 | 形态 | 适合谁 |
|---|---|---|
| A. 单 repo 多 role | 一个 teamai-hub/team-template repo,roles.yaml 定义全部角色,init 时选角色 |
想「一个团队仓库覆盖全部职能」、后续会扩角色的团队。复用 teamai 现有 role 选择流 |
| B. 多 repo 单 role | 每个角色一个独立 repo(teamai-hub/template-frontend、teamai-hub/template-pm…),roles.yaml 只含该角色 |
只想要单一职能、要最聚焦最小仓库的用户;GitHub「Use this template」直接选对应仓库 |
- 落点:GitHub 公开组织
teamai-hub,不进teamai-cli代码仓库。 - CLI 改动:首版为零。仅可选地在
teamai init「还没有 team repo」的分支打印一行指向teamai-hub组织的引导文案(后续再议)。
⚠️ 关键约束:单一内容源,B 从 A 派生
两种模式绝不各自手写内容,否则 common/ rules 和各角色内容必然漂移(改了 A 的 frontend rule,B 的 template-frontend 不会跟着变)。
做法:teamai-hub/team-template(模式 A)是唯一 source of truth。模式 B 的单角色 repo 由一个拆分脚本从 A 派生生成:
- 按角色切出
skills/<role>/、rules/<role>/; - 自动注入全员共享的
common/rules; - 生成只含该角色的
roles.yaml。
这样两种模式共用一套内容、单点维护、不漂移。派生脚本放在 team-template repo 内,可由 CI 在内容更新时自动重建 teamai-hub 下的各单角色 repo。
目录约定(已从源码核对,非推测)
| 路径 | 说明 | 源码依据 |
|---|---|---|
manifest/roles.yaml |
角色 → knowledge/skills 命名空间映射 | roles.ts loadRolesManifest |
skills/<namespace>/<skill>/SKILL.md |
每子目录一个 skill | pull.ts scanRoleAwareSkills |
rules/<namespace>/*.md |
rule 名以 <namespace>/ 前缀做角色过滤 |
pull.ts filterRulesByNamespace |
docs/、env/ |
团队文档 / 共享环境变量(可选) | pull.ts resourceTypes |
team-template/
├── README.md # 上手引导:Use this template → init → 选角色
├── manifest/roles.yaml # 全部角色的命名空间映射
├── skills/<role>/<skill>/SKILL.md
└── rules/
├── common/ # 全员共享:沟通规范、保密红线、AI 使用准则
└── <role>/*.md
首批角色范围(6 个)
按「受众是否确定在用 AI 编码工具」+「内容能否做出真血肉」筛选,首批 6 个,分两层区别对待起草标准:
| 分组 | 角色 | 起草标准 | skills(首版) |
|---|---|---|---|
| 技术三角(做深) | frontend |
资深工程师看了觉得真能用,可挂到真实 hooks/lint | react-lint、component-scaffold |
backend |
同上 | api-design-check、db-migration-review | |
qa |
命名空间只放测试独有内容,不与开发角色重叠 | testcase-gen、bug-report-lint、regression-checklist | |
| AI 高渗透非技术(做标志性) | pm |
先做 1 个精的 skill 验证「这个角色真会用 AI 工具」 | prd-gen(其余占位) |
data |
同上 | sql-review(其余占位) | |
design |
同上 | design-spec-gen(其余占位) |
common/ rules(全员):communication、confidentiality-redline、ai-usage-conduct。
重叠治理:
qa只放用例设计 / 缺陷分级 / 回归策略,「代码质量」类内容归frontend/backend。scanRoleAwareSkills有重名检测,同名 skill 会直接报错,命名空间必须划分干净。
粗估首版 30–40 个文件。
待讨论的开放问题
-
模板是否同时作为「长期 source」?(本提案最关键的未决点)
teamai 已有source add能力。若把team-template设计成既能一键起点、又能被用户source add订阅,则后续对frontend等 rules 的改进能回流给老用户;否则「clone 完即断线」是路径 A 的固有硬伤。- 选项 A:一次性脚手架(rules 写成起点占位)。
- 选项 B:活的团队基线(rules 写成可持续维护,支持 source 订阅回流)。倾向 B。
- 这是唯一可能需要碰一点 CLI 的方向。
-
非技术角色的工具前提:PM / 设计师日常是否真在 Claude Code / Cursor 里工作?首批用 pm/data/design 各 1 个标志性 skill 来验证,再决定是否加深。
-
命名与可发现性:
teamai-hub组织下的仓库命名规范(模式 A 的team-template/ 模式 B 的template-<role>)、如何在 teamai-cli README 中让用户发现它。
非目标(首版明确不做)
- 不改
teamai init核心逻辑、不新增--template内置脚手架(CLI 内置生成,验证需求后再议)。 - 不做 HR / marketing / techwriter / sre / pmo(第二批 roadmap)。
- 不做法务 / 财务 / 销售(强公司特异性 & 合规,通用模板给不出价值,交由各公司自行
push)。
Roadmap(第二批,先写进模板 README 不实现)
hr、marketing、techwriter、sre、pmo —— 需求真实但内容更因公司而异,留 push 接口让各团队自填。
Activity
[-]提案:团队模板仓库(team-starter),降低新团队上手门槛[/-][+]提案:团队模板仓库(team-template),降低新团队上手门槛[/+]docs(readme): link teamai-hub template org from Quick Start (Tencent#285