Skip to content

Commit 4e8e2c7

Browse files
author
zhonghui
committed
fixed
1 parent e8c6bff commit 4e8e2c7

16 files changed

Lines changed: 279 additions & 55 deletions

File tree

CONTRIBUTING.md

Lines changed: 17 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -58,19 +58,28 @@ test: 测试
5858
## 项目结构
5959

6060
```
61-
├── INSTRUCTIONS.md ← 核心交付物(用户放入项目的文件)
61+
├── src/ ← TypeScript 源码
62+
│ ├── cli.ts ← CLI 入口
63+
│ ├── mcp-server.ts ← MCP Server 入口
64+
│ └── skills/ ← 技能实现
65+
│ ├── init.ts ← 工作区初始化
66+
│ ├── plan.ts ← 创建变更计划
67+
│ ├── checkpoint.ts ← 阶段审计与门禁
68+
│ ├── status.ts ← 工作区状态查询
69+
│ ├── release.ts ← 归档与记忆整合
70+
│ ├── agents.ts ← 领域专家列表
71+
│ └── types.ts ← 公共类型定义
72+
├── templates/ ← 初始化时复制到项目的模板
73+
│ ├── INSTRUCTIONS.md ← 核心协议文档
74+
│ └── doc-formats/ ← 文档格式模板 (proposal/design/impl-log 等)
6275
├── agents/ ← 领域专家定义
6376
│ ├── README.md ← 专家目录速查表
6477
│ └── *.md ← 各专家的 prompt
6578
├── skills/ ← Skills(可通过 skills.sh 安装)
6679
│ └── crew-*/SKILL.md ← 各 Skill 定义
67-
└── docs/ ← 用户文档
68-
├── quick-start.md ← 快速开始
69-
├── guide.md ← 使用指南
70-
├── scenarios.md ← 使用场景 + 常见问题
71-
├── concepts.md ← 核心概念
72-
├── specialists.md ← 领域专家
73-
└── examples/ ← 最佳实践
80+
├── docs/ ← VitePress 用户文档站点
81+
├── package.json ← 包配置与脚本
82+
└── tsconfig.json ← TypeScript 编译配置
7483
```
7584

7685
## 许可证

package.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@lordmos/dev-crew",
3-
"version": "0.5.0",
3+
"version": "0.5.1",
44
"description": "AI-powered dev team orchestration framework — Skills + CLI + MCP Server",
55
"keywords": [
66
"ai",
@@ -35,7 +35,8 @@
3535
"files": [
3636
"dist/",
3737
"templates/",
38-
"agents/"
38+
"agents/",
39+
"skills/"
3940
],
4041
"scripts": {
4142
"build": "tsc",

skills/crew-agents/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ user-invocable: true
44
description: List available domain specialists that can be activated for the DevCrew team — covering game dev, security, DevOps, AI/ML, and more.
55
metadata:
66
author: lordmos
7-
version: 0.5.0
7+
version: 0.5.1
88
---
99

1010
# crew agents — 列出可用领域专家

skills/crew-checkpoint/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ user-invocable: true
44
description: Run a phase audit and consistency check on the current change. Validates all checklist items before advancing to the next PDEVI phase.
55
metadata:
66
author: lordmos
7-
version: 0.5.0
7+
version: 0.5.1
88
---
99

1010
# crew checkpoint — 阶段审计与一致性检查

skills/crew-init/SKILL.md

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ user-invocable: true
44
description: Initialize a DevCrew workspace and activate the full AI team orchestration protocol — PDEVI workflow, persistent memory, checkpoint-based quality control.
55
metadata:
66
author: lordmos
7-
version: 0.5.0
7+
version: 0.5.1
88
---
99

1010
# crew.init — 初始化 DevCrew 工作区并激活协议
@@ -187,6 +187,17 @@ DevCrew 提供以下 Skill,AI Agent 通过 MCP 工具调用执行,或人类
187187
- **Standard** Iterate ≤5 轮 → 超过创建 `[OPEN]` blocker,**暂停迭代**等待用户介入
188188
- **Prototype→Standard**: 用户说"正式做吧" → 审查 design.md 补测试策略 → 进入 Verify
189189

190+
### 变更计划修改
191+
192+
用户可能在 Plan 确认后发现计划有误("计划不对"、"需求变了"、"改一下方案")。PjM 处理流程:
193+
194+
1. **重置状态**:resume.md `phase` 回退至 Plan,`plan_confirmed` 设 false;proposal.md `plan_confirmed` 设 false
195+
2. **标记下游影响**:若已有 design.md,在 resume.md 记录"计划修改后 Design 需重新审视"
196+
3. **分派 PdM**:更新 proposal.md
197+
4. **重新确认**:展示修改摘要,等待用户确认后继续 PDEVI 流程
198+
199+
> **关键**:PjM **必须先更新 resume.md 状态**再分派工作,确保所有 Agent 读到一致的阶段信息。
200+
190201
## 通信规则
191202

192203
- proposal.md 是需求的 **single source of truth****禁止跨文件重复长篇内容**——用 `参考 {文件} § {章节}` 引用

skills/crew-plan/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ user-invocable: true
44
description: Create a new change proposal and enter the Plan phase of the PDEVI workflow. Supports Standard, Express, and Prototype modes.
55
metadata:
66
author: lordmos
7-
version: 0.5.0
7+
version: 0.5.1
88
---
99

1010
# crew plan — 创建变更计划

skills/crew-release/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ user-invocable: true
44
description: Archive completed changes and consolidate agent memory. Moves change artifacts to archive and updates each agent's long-term knowledge base.
55
metadata:
66
author: lordmos
7-
version: 0.5.0
7+
version: 0.5.1
88
---
99

1010
# crew release — 归档变更与记忆整合

skills/crew-status/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ user-invocable: true
44
description: View current DevCrew workspace status — active changes, current phase, progress, and open blockers.
55
metadata:
66
author: lordmos
7-
version: 0.5.0
7+
version: 0.5.1
88
---
99

1010
# crew status — 查看工作区状态

src/cli.ts

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ const program = new Command();
1313
program
1414
.name("crew")
1515
.description("DevCrew — AI Agent 软件开发团队编排工具")
16-
.version("0.5.0");
16+
.version("0.5.1");
1717

1818
program
1919
.command("init")
@@ -38,7 +38,9 @@ program
3838
description: opts.description,
3939
mode: opts.mode as "standard" | "express" | "prototype" | undefined,
4040
});
41-
console.log(result.ok ? `\n✅ ${result.summary}` : `\n❌ ${result.summary}`);
41+
console.log(
42+
result.ok ? `\n✅ ${result.summary}` : `\n❌ ${result.summary}`,
43+
);
4244
for (const line of result.details) console.log(` ${line}`);
4345
console.log();
4446
if (!result.ok) process.exitCode = 1;
@@ -61,7 +63,9 @@ program
6163
.argument("[name]", "要归档的变更名称(不指定则归档全部)")
6264
.action((name?: string) => {
6365
const result = release({ cwd: process.cwd(), name });
64-
console.log(result.ok ? `\n✅ ${result.summary}` : `\n❌ ${result.summary}`);
66+
console.log(
67+
result.ok ? `\n✅ ${result.summary}` : `\n❌ ${result.summary}`,
68+
);
6569
for (const line of result.details) console.log(` ${line}`);
6670
console.log();
6771
if (!result.ok) process.exitCode = 1;
@@ -78,7 +82,9 @@ program
7882
.argument("[change]", "变更名称(不指定则自动选择第一个活跃变更)")
7983
.action((change?: string) => {
8084
const result = checkpoint({ cwd: process.cwd(), change });
81-
console.log(result.ok ? `\n✅ ${result.summary}` : `\n⚠️ ${result.summary}`);
85+
console.log(
86+
result.ok ? `\n✅ ${result.summary}` : `\n⚠️ ${result.summary}`,
87+
);
8288
for (const line of result.details) console.log(line);
8389
console.log();
8490
if (!result.ok) process.exitCode = 1;

src/mcp-server.ts

Lines changed: 13 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ function formatResult(result: SkillResult) {
2424

2525
const server = new McpServer({
2626
name: "dev-crew",
27-
version: "0.5.0",
27+
version: "0.5.1",
2828
});
2929

3030
// --- Skill: init ---
@@ -33,7 +33,10 @@ server.tool(
3333
"初始化 DevCrew 工作区(创建 dev-crew/ 目录、INSTRUCTIONS.md、配置文件、Agent 记忆文件,可指定 AI 平台自动配置)",
3434
{
3535
cwd: z.string().describe("项目根目录的绝对路径"),
36-
name: z.string().optional().describe("项目名称(默认从 package.json 或目录名推断)"),
36+
name: z
37+
.string()
38+
.optional()
39+
.describe("项目名称(默认从 package.json 或目录名推断)"),
3740
platform: z
3841
.array(z.enum(["copilot", "cursor", "claude"]))
3942
.optional()
@@ -79,7 +82,10 @@ server.tool(
7982
"归档已完成的变更,触发记忆整合",
8083
{
8184
cwd: z.string().describe("项目根目录的绝对路径"),
82-
name: z.string().optional().describe("要归档的变更名称(不指定则归档全部)"),
85+
name: z
86+
.string()
87+
.optional()
88+
.describe("要归档的变更名称(不指定则归档全部)"),
8389
},
8490
async (input) => formatResult(skills.release(input)),
8591
);
@@ -98,7 +104,10 @@ server.tool(
98104
"阶段审计:运行审计清单 + 一致性检查 + 记忆同步提醒,确认当前阶段可推进",
99105
{
100106
cwd: z.string().describe("项目根目录的绝对路径"),
101-
change: z.string().optional().describe("变更名称(不指定则自动选择第一个活跃变更)"),
107+
change: z
108+
.string()
109+
.optional()
110+
.describe("变更名称(不指定则自动选择第一个活跃变更)"),
102111
},
103112
async (input) => formatResult(skills.checkpoint(input)),
104113
);

0 commit comments

Comments
 (0)