使用 AI Agent 方式开发日常工具与网站的 monorepo。开发框架与 starter 模版不放在本仓库;这里只放 Skills 与 应用代码。
agentway/
├── README.md
├── AGENTS.md # Agent 仓库级说明
├── package.json # 根 workspace(manifest 等)
├── pnpm-workspace.yaml # workspace:apps/*/*
│
├── skills/ # AI Agent Skills
│ ├── README.md
│ ├── _shared/ # 跨应用通用 skill
│ │ └── <skill-name>/SKILL.md
│ └── apps/ # 按应用绑定的 skill
│ └── <app-name>/<skill-name>/SKILL.md
│
├── apps/ # 所有应用
│ ├── README.md
│ ├── registry.yaml # 应用清单(本地 + submodule)
│ ├── web/ # 网站(site 展示站后续补充)
│ ├── desktop/
│ └── cli/
│
├── data/
│ └── manifest.json # skills + apps 索引(pnpm manifest)
│
├── scripts/
│ └── generate-manifest.mjs
│
└── .gitmodules # submodule 应用
| 原则 | 说明 |
|---|---|
| 框架不进本仓 | Starter 在独立 GitHub 仓库;各 app 通过文档或 submodule 引用 |
| Skills + Apps | 本仓只维护 Agent 工作流与实际产品 |
| 应用可很多 | 按 apps/<type>/<name>/ 扩展;元数据集中在 registry.yaml |
| 公开 / 私有 | 公开 app 直接提交;私有 app 用私有 submodule 或独立仓库 |
| Skill 可检索 | pnpm manifest 生成 data/manifest.json,供 Agent 或后续展示站使用 |
本仓用 pnpm workspace 管理 apps/<type>/<name>/ 下的 Node 应用(各自需有 package.json)。
pnpm install # 根目录安装,链接所有 workspace 包
pnpm manifest # 更新 skills/apps 索引
pnpm --filter <pkg> dev # 在单个 app 下运行脚本
pnpm -r build # 所有 app 执行 build(有该 script 的包)说明:
skills/不参与 workspace(无package.json,纯 Markdown)- 非 Node 应用(如 Rust / Go CLI)可不建
package.json,照常放在apps/目录 - submodule 应用:clone 后
pnpm install会自动纳入 workspace(路径匹配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/web/site:浏览 Skills、展示 Apps、发布到 GitHub Pages。当前尚未实现,目录约定已预留,见 apps/web/README.md。
部分 app 是独立 GitHub 仓库,以 submodule 挂到 apps/<type>/<name>/:
git submodule add https://github.com/<org>/<repo>.git apps/cli/my-tool在 apps/registry.yaml 中登记 source: submodule 与 repo 地址,并更新 .gitmodules。克隆本仓后:
git submodule update --init --recursive- 在
skills/_shared/<name>/或skills/apps/<app>/<name>/下创建SKILL.md - 运行
pnpm manifest更新data/manifest.json
从外部发现 skill — 统一搜索(可扩展 source):
pnpm find-skills <关键词> # 搜 data/sources.yaml 里所有 source
pnpm find-skills <关键词> --source skillsllm # 仅 SkillsLLM API在 data/sources.yaml 添加 source 即可接入新 hub。详见 skills/_shared/find-skills/SKILL.md。
详见 skills/_shared/scaffold-app/SKILL.md:选类型目录 → 从外部模版创建或 submodule 引入 → 写入 registry.yaml → 添加 README.md / AGENTS.md。
- 网站(
apps/web/) - 桌面应用(
apps/desktop/) - CLI 工具(
apps/cli/)