使用 AI Agent 方式开发日常工具与网站的 monorepo。开发框架与 starter 模版不放在本仓库;当前仓库聚焦 应用代码 与应用注册信息。
agentway/
├── README.md
├── AGENTS.md # Agent 仓库级说明
├── package.json # 根 workspace(manifest 等)
├── pnpm-workspace.yaml # workspace:apps/*(兼容 apps/*/*)
│
├── apps/ # 所有应用(按项目,不强制按类型分层)
│ ├── README.md
│ ├── registry.yaml # 应用清单(本地 + submodule)
│ └── <project-name>/
│
├── data/ # 应用相关数据(registry/manifest 等)
├── scripts/ # 辅助脚本(manifest / pnpm update 等)
│
└── .gitmodules # submodule 应用
| 原则 | 说明 |
|---|---|
| 框架不进本仓 | Starter 在独立 GitHub 仓库;各 app 通过文档或 submodule 引用 |
| Apps only | 本仓只维护应用与应用注册信息;skills 已迁移到独立仓库 |
| 应用可很多 | 按 apps/<project-name>/ 扩展;元数据集中在 registry.yaml(可加 kind/tags) |
| 公开 / 私有 | 公开 app 直接提交;私有 app 用私有 submodule 或独立仓库 |
| Skills 暂缓 | skills 已迁移,待其他项目完成后再接入本仓流程 |
本仓用 pnpm workspace 管理 apps/<project-name>/ 下的 Node 应用(各自需有 package.json)。
pnpm install # 根目录安装,链接所有 workspace 包
pnpm manifest # 更新本仓 manifest(若启用)
pnpm --filter <pkg> dev # 在单个 app 下运行脚本
pnpm -r build # 所有 app 执行 build(有该 script 的包)说明:
skills/已迁移到独立仓库,不在当前目录维护- 非 Node 应用(如 Rust / Go CLI)可不建
package.json,照常放在apps/目录 - submodule 应用:clone 后
pnpm install会自动纳入 workspace(路径匹配apps/*或apps/*/*)
克隆含 submodule 的仓库:
git submodule update --init --recursive
pnpm install根目录 package.json 的 "packageManager": "pnpm@11.9.0" 锁定团队与 CI 使用的 pnpm 版本(可复现构建),不要删掉。
本机使用指定版本(二选一):
# A. Corepack(Node 自带,需先 enable)
corepack enable && corepack install
# B. 全局 pnpm(你当前方式)— 保持 pnpm -v 与 packageManager 一致即可
pnpm self-update升级到最新 pnpm:
pnpm pnpm:update # 查 npm 最新版,更新 packageManager,并尝试 self-update
pnpm install
git add package.json pnpm-lock.yaml && git commit -m "chore: bump pnpm"pnpm:update 不依赖 Corepack;有 Corepack 时会优先使用。
自动保持最新: 仓库已含 renovate.json。在 GitHub 安装 Renovate App 后,会定期提 PR 更新 packageManager 与依赖。
计划作为普通项目放在 apps/site:展示应用目录与 registry 元数据,并可链接外部 skill hubs。当前尚未实现。
部分 app 是独立 GitHub 仓库,以 submodule 挂到 apps/<project-name>/:
git submodule add https://github.com/<org>/<repo>.git apps/my-tool在 apps/registry.yaml 中登记 source: submodule 与 repo 地址,并更新 .gitmodules。克隆本仓后:
git submodule update --init --recursiveskills 目录已迁移到独立仓库。当前仓库先聚焦 apps;skills 相关接入(检索、同步、展示)等你完成其他项目后再处理。
可以,推荐。.mts 适合 TypeScript + ESM 脚本;Node 本身不能直接执行 .mts,通常用 tsx 运行:
pnpm add -D tsx typescriptpackage.json 示例:
{
"scripts": {
"manifest": "tsx scripts/generate-manifest.mts"
}
}流程:选项目目录 → 从外部模版创建或 submodule 引入 → 写入 registry.yaml → 添加 README.md / AGENTS.md。
apps/registry.yaml 推荐字段:
- 必填:
name、title、path、source - 可选:
kind(如web/cli/desktop/service)、tags(如[internal, mvp]) - 其他:
visibility、status、description、repo(submodule 时)
- 任意类型应用(Web / Desktop / CLI / 服务端工具等)统一放在
apps/<project-name>/