sdd-flow-kit 1.0.2 → 1.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -14,7 +14,10 @@
|
|
|
14
14
|
#### 安装教程
|
|
15
15
|
|
|
16
16
|
1. 进入你要开发的项目目录
|
|
17
|
-
2. 安装:`
|
|
17
|
+
2. 安装:`pnpm add -D sdd-flow-kit && pnpm rebuild sdd-flow-kit`
|
|
18
|
+
- 安装后会自动执行一次初始化(postinstall)
|
|
19
|
+
- 交互终端下会提示选择项目类型(OMS / ADI / 欢盟 / AD Tools,默认 OMS)
|
|
20
|
+
- 非交互环境自动使用默认值(agent=claude-code, project=OMS)
|
|
18
21
|
3. 安装流程(安装即用,默认 `claude-code`):`npx sdd-flow-kit install`
|
|
19
22
|
- 会自动安装对应 AI 环境并写入项目级触发 Skill(仅在“开发 <产品> <版本> 需求/版本/PRD”场景触发)
|
|
20
23
|
- 会在项目根目录生成 `docs/<项目>-doc-skill/`(用于 PRD 下载脚本与说明),可通过 `--project` 选择:`OMS` / `ADI` / `欢盟` / `AD Tools`(默认 `OMS`)
|
|
@@ -22,6 +25,27 @@
|
|
|
22
25
|
5. (可选)环境健检:`npx sdd-flow-kit doctor --agent claude-code`
|
|
23
26
|
6. 完成后,直接在 Cursor / Claude Code / Codex / OpenClaw 中用自然语言发起需求,例如:`开发 ADI 2.3.2 需求`
|
|
24
27
|
|
|
28
|
+
> 可通过环境变量覆盖安装时默认项目类型:`SDD_FLOW_KIT_PROJECT=ADI npm i -D sdd-flow-kit`
|
|
29
|
+
|
|
30
|
+
#### 安装失败排查(推荐复制执行)
|
|
31
|
+
|
|
32
|
+
当安装后没有生成 `.cursor/skills/sdd-flow-kit/SKILL.md` 时,按以下顺序处理:
|
|
33
|
+
|
|
34
|
+
1. 检查包是否已安装:`pnpm list sdd-flow-kit --depth 0`
|
|
35
|
+
2. 若出现 `ERR_PNPM_UNEXPECTED_STORE`,先对齐 store(示例):
|
|
36
|
+
- `pnpm config set store-dir /Users/<your-user>/Library/pnpm/store/v10 --global`
|
|
37
|
+
3. 重新触发脚本:`pnpm rebuild sdd-flow-kit`
|
|
38
|
+
4. 若仍未生成,执行手动兜底(100%触发初始化):
|
|
39
|
+
- `node ./node_modules/sdd-flow-kit/dist/postinstall.js`
|
|
40
|
+
5. 验证产物:
|
|
41
|
+
- `ls .cursor/skills/sdd-flow-kit/SKILL.md`
|
|
42
|
+
- `ls .claude/skills/sdd-flow-kit/SKILL.md`
|
|
43
|
+
- `ls docs/*-doc-skill/SKILL.md`
|
|
44
|
+
|
|
45
|
+
团队推荐安装命令(稳妥):
|
|
46
|
+
|
|
47
|
+
`pnpm add -D sdd-flow-kit && pnpm rebuild sdd-flow-kit`
|
|
48
|
+
|
|
25
49
|
#### 使用说明
|
|
26
50
|
|
|
27
51
|
1. `install`(等价 `setup`):提示选择开发环境(cursor/claude-code/codex/openclaw,默认 claude-code)与开发分支(无则自动创建),并检测/安装 openspec+superpower 基础环境,同时写入项目级 Skill
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const node_path_1 = __importDefault(require("node:path"));
|
|
7
|
+
const node_process_1 = __importDefault(require("node:process"));
|
|
8
|
+
const setupProject_1 = require("./steps/setupProject");
|
|
9
|
+
const ALLOWED_PROJECTS = ["OMS", "ADI", "欢盟", "AD Tools"];
|
|
10
|
+
function resolveProjectKindFromEnv() {
|
|
11
|
+
const raw = (node_process_1.default.env.SDD_FLOW_KIT_PROJECT ?? "").trim();
|
|
12
|
+
if (ALLOWED_PROJECTS.includes(raw)) {
|
|
13
|
+
return raw;
|
|
14
|
+
}
|
|
15
|
+
return "OMS";
|
|
16
|
+
}
|
|
17
|
+
async function main() {
|
|
18
|
+
// npm/pnpm 安装依赖时,INIT_CWD 指向用户项目根目录。
|
|
19
|
+
const initCwd = node_process_1.default.env.INIT_CWD ? node_path_1.default.resolve(node_process_1.default.env.INIT_CWD) : null;
|
|
20
|
+
const pkgDir = node_path_1.default.resolve(__dirname, "..");
|
|
21
|
+
const projectRoot = initCwd ?? node_process_1.default.cwd();
|
|
22
|
+
// 避免在本包自身仓库开发安装依赖时重复触发自动初始化。
|
|
23
|
+
if (projectRoot === pkgDir)
|
|
24
|
+
return;
|
|
25
|
+
const isInteractive = Boolean(node_process_1.default.stdin.isTTY && node_process_1.default.stdout.isTTY);
|
|
26
|
+
const projectKind = resolveProjectKindFromEnv();
|
|
27
|
+
// eslint-disable-next-line no-console
|
|
28
|
+
console.log(`[sdd-flow-kit] postinstall bootstrap at: ${projectRoot}`);
|
|
29
|
+
// eslint-disable-next-line no-console
|
|
30
|
+
console.log(`[sdd-flow-kit] interactive=${isInteractive}, defaultProject=${projectKind}`);
|
|
31
|
+
await (0, setupProject_1.setupProject)({
|
|
32
|
+
projectRoot,
|
|
33
|
+
agent: "claude-code",
|
|
34
|
+
// 交互安装允许用户在 setupProject 内选择 agent/project/branch
|
|
35
|
+
yes: !isInteractive,
|
|
36
|
+
dryRun: false,
|
|
37
|
+
projectKind,
|
|
38
|
+
});
|
|
39
|
+
// eslint-disable-next-line no-console
|
|
40
|
+
console.log("[sdd-flow-kit] setup completed");
|
|
41
|
+
}
|
|
42
|
+
main().catch((err) => {
|
|
43
|
+
// 不阻断依赖安装,仅告警
|
|
44
|
+
// eslint-disable-next-line no-console
|
|
45
|
+
console.warn("[sdd-flow-kit] postinstall setup skipped:", err instanceof Error ? err.message : err);
|
|
46
|
+
});
|
package/dist/steps/invokeFlow.js
CHANGED
|
@@ -4,10 +4,15 @@ exports.parseInvokeText = parseInvokeText;
|
|
|
4
4
|
exports.toRunOptions = toRunOptions;
|
|
5
5
|
function parseInvokeText(text) {
|
|
6
6
|
const normalized = text.trim();
|
|
7
|
-
|
|
7
|
+
// 兼容以下常见表达:
|
|
8
|
+
// - 开发 OMS 1.24.4 需求
|
|
9
|
+
// - 开发 OMS-V1.24.4 版本
|
|
10
|
+
// - 开发OMS-V1.24.4版本
|
|
11
|
+
// - 开发 AD Tools V1.2.3 PRD
|
|
12
|
+
const match = normalized.match(/开发\s*(.+?)(?:[-_\s]*)V?([0-9]+(?:\.[0-9]+){1,3})\s*(?:需求|版本|PRD)?/i);
|
|
8
13
|
if (!match)
|
|
9
14
|
return null;
|
|
10
|
-
const product = match[1].toUpperCase();
|
|
15
|
+
const product = match[1].replace(/[-_\s]+$/g, "").toUpperCase();
|
|
11
16
|
const version = match[2];
|
|
12
17
|
return { product, version };
|
|
13
18
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sdd-flow-kit",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.4",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "Cross-agent SDD automated development workflow kit (ADI/ADI-like).",
|
|
6
6
|
"license": "MIT",
|
|
@@ -17,7 +17,8 @@
|
|
|
17
17
|
"scripts": {
|
|
18
18
|
"build": "tsc -p tsconfig.json",
|
|
19
19
|
"start": "node dist/cli.js",
|
|
20
|
-
"prepublishOnly": "npm run build"
|
|
20
|
+
"prepublishOnly": "npm run build",
|
|
21
|
+
"postinstall": "node dist/postinstall.js"
|
|
21
22
|
},
|
|
22
23
|
"devDependencies": {
|
|
23
24
|
"@types/node": "^20.14.10",
|
|
@@ -6,7 +6,12 @@ description: 当用户说“开发 <产品> <版本> 需求/版本/PRD”或类
|
|
|
6
6
|
# SDD Flow Trigger Skill
|
|
7
7
|
|
|
8
8
|
## 触发条件(仅这些场景触发)
|
|
9
|
-
-
|
|
9
|
+
- 用户说法包含类似:
|
|
10
|
+
- `开发 XXX 1.2 需求`
|
|
11
|
+
- `开发 XXX 1.2.3 版本`
|
|
12
|
+
- `开发 XXX-V1.2.3 版本`
|
|
13
|
+
- `开发XXX-V1.2.3版本`(无空格连写)
|
|
14
|
+
- `开发 XXX PRD`
|
|
10
15
|
- 或明确要求“按 SDD 流程”推进某版本需求
|
|
11
16
|
|
|
12
17
|
## 触发后必须执行
|