speccore 8.3.158 → 8.3.160
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 +1 -1
- package/dist/commands/analyze.d.ts.map +1 -1
- package/dist/commands/analyze.js +88 -96
- package/dist/commands/analyze.js.map +1 -1
- package/dist/commands/ask.d.ts.map +1 -1
- package/dist/commands/ask.js +0 -13
- package/dist/commands/ask.js.map +1 -1
- package/dist/commands/execute.d.ts.map +1 -1
- package/dist/commands/execute.js +67 -6
- package/dist/commands/execute.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +71 -216
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/iteration/split.d.ts.map +1 -1
- package/dist/commands/iteration/split.js +73 -9
- package/dist/commands/iteration/split.js.map +1 -1
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +1 -2
- package/dist/commands/migrate.js.map +1 -1
- package/dist/commands/update.d.ts.map +1 -1
- package/dist/commands/update.js +1 -4
- package/dist/commands/update.js.map +1 -1
- package/dist/core/agent-adapter.d.ts +81 -0
- package/dist/core/agent-adapter.d.ts.map +1 -0
- package/dist/core/agent-adapter.js +425 -0
- package/dist/core/agent-adapter.js.map +1 -0
- package/dist/core/agents/defaults/_INDEX.md +15 -15
- package/dist/core/agents/defaults/code-reviewer.md +9 -0
- package/dist/core/agents/defaults/compiler.md +12 -3
- package/dist/core/agents/defaults/dependency-analyst.md +7 -0
- package/dist/core/agents/defaults/doc-sync-agent.md +7 -0
- package/dist/core/agents/defaults/impact-analyst.md +7 -0
- package/dist/core/agents/defaults/interaction-designer.md +17 -0
- package/dist/core/agents/defaults/performance-expert.md +9 -0
- package/dist/core/agents/defaults/regression-tester.md +7 -0
- package/dist/core/agents/defaults/security-reviewer.md +9 -0
- package/dist/core/agents/defaults/test-engineer.md +10 -0
- package/dist/core/agents/defaults/test-reviewer.md +10 -0
- package/dist/core/lock-manager.d.ts.map +1 -1
- package/dist/core/lock-manager.js +2 -0
- package/dist/core/lock-manager.js.map +1 -1
- package/dist/core/pipeline-engine.d.ts +49 -8
- package/dist/core/pipeline-engine.d.ts.map +1 -1
- package/dist/core/pipeline-engine.js +221 -34
- package/dist/core/pipeline-engine.js.map +1 -1
- package/dist/core/prompt-builder.d.ts +4 -0
- package/dist/core/prompt-builder.d.ts.map +1 -1
- package/dist/core/prompt-builder.js +83 -10
- package/dist/core/prompt-builder.js.map +1 -1
- package/dist/core/rules/defaults/ANALYSIS_QUALITY.md +73 -0
- package/dist/core/rules/defaults/EXECUTION.md +20 -0
- package/dist/core/rules/defaults/ITERATION_QUALITY.md +49 -0
- package/dist/core/rules/defaults/TASK_SPLIT.md +16 -0
- package/dist/core/spec-paths.d.ts.map +1 -1
- package/dist/core/spec-paths.js +2 -1
- package/dist/core/spec-paths.js.map +1 -1
- package/package.json +4 -6
- package/templates/api-design-example.md +0 -338
- package/templates/ci/github-actions.yml +0 -44
- package/templates/dashboard.html +0 -425
- package/templates/database-example.md +0 -223
- package/templates/deploy-docker/README.md +0 -284
- package/templates/deploy-docker/deploy-remote.sh +0 -79
- package/templates/deploy-docker/docker-compose.yml +0 -113
- package/templates/deploy-docker/frontend.Dockerfile +0 -43
- package/templates/deploy-docker/nginx.conf +0 -30
- package/templates/deploy-examples.yaml +0 -436
- package/templates/deploy-java/Dockerfile +0 -50
- package/templates/deploy-java/README.md +0 -212
- package/templates/deploy-java/deploy.sh +0 -120
- package/templates/deploy-java/spring-boot.service +0 -35
- package/templates/html/speccore-ask-explain.html +0 -10
- package/templates/html/speccore-ask-guide.html +0 -10
- package/templates/html/speccore-ask-match.html +0 -10
- package/templates/html/speccore-ask-pipeline.html +0 -1
- package/templates/html/speccore-ask-result.html +0 -10
- package/templates/html/speccore-demo.html +0 -449
- package/templates/html/speccore-dev.html +0 -202
- package/templates/html/speccore-help.html +0 -1
- package/templates/html/speccore-knowledge-graph.html +0 -656
- package/templates/html/speccore-retro-T-001.html +0 -1
- package/templates/html/speccore-setup-guide.html +0 -289
- package/templates/html/speccore-welcome.html +0 -1
- package/templates/security-example.md +0 -226
- package/templates/verify-spec-example.yaml +0 -982
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# 迭代层分析强制约束
|
|
2
|
+
|
|
3
|
+
## 产出目录结构与文档清单
|
|
4
|
+
|
|
5
|
+
迭代层分析产出位于 `Iteration-NNN/020-specs/` 和 `Task-NNN/00-specs/`,必须生成以下文档:
|
|
6
|
+
|
|
7
|
+
```
|
|
8
|
+
Iteration-NNN/020-specs/
|
|
9
|
+
├── overview/ ← [AI生成] 迭代级全局规格
|
|
10
|
+
│ ├── REQUIREMENT.md ← 迭代专属需求
|
|
11
|
+
│ ├── ANALYSIS.md ← 综合分析
|
|
12
|
+
│ ├── TECH.md ← 技术规格
|
|
13
|
+
│ ├── DEV_GUIDE.md ← 开发指南
|
|
14
|
+
│ └── DEPS.md ← 依赖分析
|
|
15
|
+
├── {功能模块}/ ← [AI生成] 按功能模块组织
|
|
16
|
+
│ └── {端名}/ ← [AI生成] 端级规格
|
|
17
|
+
│ ├── TECH.md ← 技术规格
|
|
18
|
+
│ ├── TEST.md ← 测试用例
|
|
19
|
+
│ ├── UI_SPEC.md ← UI 规格(仅前端)
|
|
20
|
+
│ └── DEV_GUIDE.md ← 开发指南
|
|
21
|
+
└── requirements/ ← [AI生成] 黄金需求(clarify 输出)
|
|
22
|
+
└── *.md
|
|
23
|
+
|
|
24
|
+
Task-NNN/00-specs/ ← [AI生成] 模块级核心规格
|
|
25
|
+
├── REQ.md ← 需求规格
|
|
26
|
+
├── TECH.md ← 技术规格
|
|
27
|
+
├── SCHEMA.md ← 数据模型(条件创建)
|
|
28
|
+
├── CHANGELOG.md ← 变更记录
|
|
29
|
+
└── CONTEXT.md ← 任务上下文
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## 产出文档完整性
|
|
33
|
+
|
|
34
|
+
- **每端必须输出 4 份文档**:`TECH.md` + `TEST.md` + `UI_SPEC.md` + `DEV_GUIDE.md`,缺一不可
|
|
35
|
+
- **禁止输出空表格** — 每个 Markdown 表格必须有至少 1 行数据,只有表头的表格视为未完成
|
|
36
|
+
- **禁止输出占位符** — 不允许写「待填充」、「TODO」、「...」、「xxx」等占位内容
|
|
37
|
+
- **自检规则**:生成完成后检查每个文档,如果仍含 `<!-- SPEC-SKELETON -->` 或空表格只有表头 → 必须重新填充
|
|
38
|
+
|
|
39
|
+
## DEV_GUIDE.md 最低标准
|
|
40
|
+
|
|
41
|
+
- 改造范围表格 ≥ 3 行(具体到文件/目录路径)
|
|
42
|
+
- 实施步骤 ≥ 3 步(按依赖排序,具体到文件/函数级)
|
|
43
|
+
- 验证方式表格 ≥ 3 行(可执行的命令/操作 + 通过标准)
|
|
44
|
+
- 坑点 ≥ 2 条
|
|
45
|
+
|
|
46
|
+
## 其他文档要求
|
|
47
|
+
|
|
48
|
+
- **MONITOR.md**:必须按 Fatal/Critical/Warning/Info 四级定义告警规则,不能只列指标名称
|
|
49
|
+
- **REVIEW.md**:安全检查必须逐接口列出鉴权需求,不能笼统写"需要鉴权"
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
# 任务拆分强制约束
|
|
2
|
+
|
|
3
|
+
## 拆分粒度控制
|
|
4
|
+
|
|
5
|
+
- **单次迭代总功能模块数上限 20 个** — 超出必须合并(功能模块 = Task 目录,不是子任务)
|
|
6
|
+
- **每个功能模块按涉及的端自动拆分子任务**,每个端默认只创建一个子任务
|
|
7
|
+
- **子任务是最终执行单元**(`Task-NNN/{端名}/Task-NNN-{端名}/`),超出默认子任务需用户手动创建
|
|
8
|
+
- **禁止跳过任何功能模块** — 即使信息不足,也必须基于已有信息拆分并填充内容
|
|
9
|
+
|
|
10
|
+
## 字段完整性
|
|
11
|
+
|
|
12
|
+
- **禁止输出空内容** — `reqContent`、`techContent`、`devGuideContent` 每个字段长度必须 ≥ 200 字符
|
|
13
|
+
- **禁止省略字段** — JSON 中必须包含 `reqContent`、`techContent`、`devGuideContent` 三个字段
|
|
14
|
+
- **topic 必须是英文短横线格式** — 如 `user-authentication`,用于生成任务目录名
|
|
15
|
+
- **scope 必须使用标准端名** — 决定子任务按哪些端创建,端名错误会导致子任务目录错误
|
|
16
|
+
- **内容必须从 analyze 产物提取** — `reqContent` 从 `REQUIREMENT.md`,`techContent` 从 `TECH.md`,`devGuideContent` 从 `DEV_GUIDE.md`
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-paths.d.ts","sourceRoot":"","sources":["../../src/core/spec-paths.ts"],"names":[],"mappings":"AAUA,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,aAAa,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,UAK7B,CAAC;AAEF;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CASrG;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI5F;AAyED;;;;;GAKG;AACH;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,
|
|
1
|
+
{"version":3,"file":"spec-paths.d.ts","sourceRoot":"","sources":["../../src/core/spec-paths.ts"],"names":[],"mappings":"AAUA,oDAAoD;AACpD,eAAO,MAAM,gBAAgB,aAAa,CAAC;AAE3C;;;;GAIG;AACH,eAAO,MAAM,iBAAiB,UAK7B,CAAC;AAEF;;;GAGG;AACH,wBAAsB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CASrG;AAED;;;GAGG;AACH,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAI5F;AAyED;;;;;GAKG;AACH;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,CA4CzE;AAED;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAavE;AAED,wBAAsB,iBAAiB,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CA+E3D;AAED;;;GAGG;AACH,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAyDvE;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,WAAW;IAC1B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,EAAE,MAAM,CAAC;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAoG1E;AAED;;;;;;;GAOG;AACH,wBAAsB,yBAAyB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAaxF;AAED;;;;;;;;GAQG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,0BAA0B;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6BAA6B;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,aAAa;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,MAAM,CAAC;IACd,6CAA6C;IAC7C,WAAW,EAAE,cAAc,EAAE,CAAC;CAC/B;AAOD,wBAAsB,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAmM1E"}
|
package/dist/core/spec-paths.js
CHANGED
|
@@ -146,7 +146,8 @@ async function getValidPlatformIdentifiers() {
|
|
|
146
146
|
async function parseFeatureList(iterDir) {
|
|
147
147
|
const features = new Set();
|
|
148
148
|
// 排除非功能文档(系统文件、汇总文件)
|
|
149
|
-
// v8.3.
|
|
149
|
+
// v8.3.81+: 移除 'REQUIREMENT',用户命名自由,REQUIREMENT.md 也可作为功能模块名
|
|
150
|
+
// v8.3.158+: 加回 REQUIREMENT,避免 REQUIREMENT.md 被误识别为功能模块名
|
|
150
151
|
const excludeNames = new Set([
|
|
151
152
|
'README', 'INDEX', 'CLARIFY_REPORT', 'REQUIREMENT',
|
|
152
153
|
'CHANGELOG', 'LICENSE', 'CONTRIBUTING', 'TEMPLATE',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spec-paths.js","sourceRoot":"","sources":["../../src/core/spec-paths.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"spec-paths.js","sourceRoot":"","sources":["../../src/core/spec-paths.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "speccore",
|
|
3
|
-
"version": "8.3.
|
|
3
|
+
"version": "8.3.160",
|
|
4
4
|
"description": "SpecCore - Code by Spec, Not by Vibe.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"sync-version": "node sync-version.js",
|
|
13
13
|
"watch": "tsc --watch",
|
|
14
14
|
"prepublish": "npm run build",
|
|
15
|
-
"test": "
|
|
15
|
+
"test": "jest",
|
|
16
16
|
"lint": "eslint src/**/*.ts"
|
|
17
17
|
},
|
|
18
18
|
"keywords": [
|
|
@@ -31,8 +31,7 @@
|
|
|
31
31
|
"files": [
|
|
32
32
|
"dist",
|
|
33
33
|
"bin",
|
|
34
|
-
".agents"
|
|
35
|
-
"templates"
|
|
34
|
+
".agents"
|
|
36
35
|
],
|
|
37
36
|
"dependencies": {
|
|
38
37
|
"commander": "^11.1.0",
|
|
@@ -47,8 +46,7 @@
|
|
|
47
46
|
"@types/js-yaml": "^4.0.9",
|
|
48
47
|
"@types/node": "^20.10.5",
|
|
49
48
|
"typescript": "^5.3.3",
|
|
50
|
-
"vitest": "^1.6.0"
|
|
51
|
-
"zod": "^3.25.76"
|
|
49
|
+
"vitest": "^1.6.0"
|
|
52
50
|
},
|
|
53
51
|
"engines": {
|
|
54
52
|
"node": ">=18.0.0"
|
|
@@ -1,338 +0,0 @@
|
|
|
1
|
-
# API 设计规范示例
|
|
2
|
-
|
|
3
|
-
> 本文件为 RESTful API 设计规范示例,供新项目参考。
|
|
4
|
-
> 复制到项目后按需修改,或作为 `.speccore/RULES/api-design.md` 的素材。
|
|
5
|
-
|
|
6
|
-
---
|
|
7
|
-
|
|
8
|
-
## 1. 基础规范
|
|
9
|
-
|
|
10
|
-
### 1.1 URL 设计
|
|
11
|
-
|
|
12
|
-
- **全部小写**,使用短横线 `-` 分隔单词
|
|
13
|
-
- **资源名用复数**:`/users` `/orders` `/products`
|
|
14
|
-
- **避免动词**:用 HTTP 方法表达动作,不要写 `/getUsers` `/createOrder`
|
|
15
|
-
- **嵌套不超过 3 层**:`/users/{id}/orders/{orderId}/items` ✅,`/users/{id}/orders/{orderId}/items/{itemId}/reviews/{reviewId}` ❌
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
GET /users # 列表
|
|
19
|
-
GET /users/{id} # 详情
|
|
20
|
-
POST /users # 创建
|
|
21
|
-
PUT /users/{id} # 全量更新
|
|
22
|
-
PATCH /users/{id} # 部分更新
|
|
23
|
-
DELETE /users/{id} # 删除
|
|
24
|
-
```
|
|
25
|
-
|
|
26
|
-
### 1.2 HTTP 状态码
|
|
27
|
-
|
|
28
|
-
| 状态码 | 场景 | 说明 |
|
|
29
|
-
|:---|:---|:---|
|
|
30
|
-
| `200` | 成功 | GET/PUT/PATCH/DELETE 成功 |
|
|
31
|
-
| `201` | 创建成功 | POST 创建资源成功 |
|
|
32
|
-
| `204` | 无内容 | DELETE 成功,不返回 body |
|
|
33
|
-
| `400` | 参数错误 | 请求参数校验失败 |
|
|
34
|
-
| `401` | 未认证 | Token 缺失或过期 |
|
|
35
|
-
| `403` | 无权限 | 已登录但无权访问 |
|
|
36
|
-
| `404` | 不存在 | 资源不存在 |
|
|
37
|
-
| `409` | 冲突 | 资源已存在或状态冲突 |
|
|
38
|
-
| `422` | 业务规则冲突 | 请求语法正确但业务规则不允许 |
|
|
39
|
-
| `429` | 限流 | 请求过于频繁 |
|
|
40
|
-
| `500` | 系统错误 | 服务端未捕获异常 |
|
|
41
|
-
|
|
42
|
-
### 1.3 请求/响应格式
|
|
43
|
-
|
|
44
|
-
**请求头必备:**
|
|
45
|
-
```
|
|
46
|
-
Content-Type: application/json
|
|
47
|
-
Authorization: Bearer {token}
|
|
48
|
-
X-Request-Id: {uuid} # 链路追踪 ID
|
|
49
|
-
X-Client-Version: 1.2.0 # 客户端版本(可选)
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
**统一响应体:**
|
|
53
|
-
```json
|
|
54
|
-
{
|
|
55
|
-
"success": true,
|
|
56
|
-
"code": "OK",
|
|
57
|
-
"message": "success",
|
|
58
|
-
"data": { ... },
|
|
59
|
-
"traceId": "req-abc123",
|
|
60
|
-
"timestamp": "2026-09-10T12:00:00Z"
|
|
61
|
-
}
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
**错误响应体:**
|
|
65
|
-
```json
|
|
66
|
-
{
|
|
67
|
-
"success": false,
|
|
68
|
-
"code": "BIZ_001",
|
|
69
|
-
"message": "参数校验失败",
|
|
70
|
-
"details": [
|
|
71
|
-
{ "field": "phone", "message": "手机号格式不正确" }
|
|
72
|
-
],
|
|
73
|
-
"traceId": "req-abc123",
|
|
74
|
-
"timestamp": "2026-09-10T12:00:00Z"
|
|
75
|
-
}
|
|
76
|
-
```
|
|
77
|
-
|
|
78
|
-
---
|
|
79
|
-
|
|
80
|
-
## 2. 分页规范
|
|
81
|
-
|
|
82
|
-
**请求:**
|
|
83
|
-
```
|
|
84
|
-
GET /users?page=1&pageSize=20&sort=createdAt,desc&sort=name,asc
|
|
85
|
-
```
|
|
86
|
-
|
|
87
|
-
**响应:**
|
|
88
|
-
```json
|
|
89
|
-
{
|
|
90
|
-
"success": true,
|
|
91
|
-
"data": {
|
|
92
|
-
"list": [ ... ],
|
|
93
|
-
"pagination": {
|
|
94
|
-
"page": 1,
|
|
95
|
-
"pageSize": 20,
|
|
96
|
-
"total": 156,
|
|
97
|
-
"totalPages": 8,
|
|
98
|
-
"hasNext": true,
|
|
99
|
-
"hasPrev": false
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
```
|
|
104
|
-
|
|
105
|
-
**规则:**
|
|
106
|
-
- `page` 从 1 开始,不是 0
|
|
107
|
-
- `pageSize` 默认 20,最大 100
|
|
108
|
-
- `sort` 支持多字段,格式 `字段名,asc|desc`
|
|
109
|
-
- 不分页接口必须显式声明,默认都分页
|
|
110
|
-
|
|
111
|
-
---
|
|
112
|
-
|
|
113
|
-
## 3. 鉴权规范
|
|
114
|
-
|
|
115
|
-
### 3.1 Token 机制
|
|
116
|
-
|
|
117
|
-
- **Access Token:** JWT,有效期 2 小时,放在 `Authorization: Bearer {token}`
|
|
118
|
-
- **Refresh Token:** 有效期 7 天,用于换取新的 Access Token
|
|
119
|
-
- **Token 刷新:** 返回 401 时,客户端用 Refresh Token 换取新 Access Token,重试原请求
|
|
120
|
-
|
|
121
|
-
### 3.2 接口鉴权分级
|
|
122
|
-
|
|
123
|
-
| 级别 | 说明 | 示例 |
|
|
124
|
-
|:---|:---|:---|
|
|
125
|
-
| `public` | 无需登录 | 登录接口、注册接口、公开数据 |
|
|
126
|
-
| `user` | 需登录 | 查看自己的订单、修改个人资料 |
|
|
127
|
-
| `admin` | 需管理员权限 | 用户管理、系统配置 |
|
|
128
|
-
| `super` | 需超级管理员 | 删除组织、修改全局配置 |
|
|
129
|
-
|
|
130
|
-
### 3.3 权限校验顺序
|
|
131
|
-
|
|
132
|
-
1. 校验 Token 有效性(是否过期、是否被吊销)
|
|
133
|
-
2. 校验接口访问权限(该角色能否访问此接口)
|
|
134
|
-
3. 校验数据权限(该用户能否操作此数据)
|
|
135
|
-
4. 记录审计日志(谁、什么时间、访问了什么)
|
|
136
|
-
|
|
137
|
-
---
|
|
138
|
-
|
|
139
|
-
## 4. 版本控制
|
|
140
|
-
|
|
141
|
-
### 4.1 URL 路径版本(推荐)
|
|
142
|
-
|
|
143
|
-
```
|
|
144
|
-
/v1/users
|
|
145
|
-
/v2/users
|
|
146
|
-
```
|
|
147
|
-
|
|
148
|
-
### 4.2 Header 版本(备选)
|
|
149
|
-
|
|
150
|
-
```
|
|
151
|
-
Accept: application/json; version=2.0
|
|
152
|
-
```
|
|
153
|
-
|
|
154
|
-
**规则:**
|
|
155
|
-
- 主版本号变更(v1 → v2)才改 URL,内部迭代不改
|
|
156
|
-
- 老版本保留至少 6 个月,给客户端迁移时间
|
|
157
|
-
- 版本文档必须说明各版本差异和废弃计划
|
|
158
|
-
|
|
159
|
-
---
|
|
160
|
-
|
|
161
|
-
## 5. 文件上传
|
|
162
|
-
|
|
163
|
-
### 5.1 直接上传(小文件 < 5MB)
|
|
164
|
-
|
|
165
|
-
```
|
|
166
|
-
POST /files
|
|
167
|
-
Content-Type: multipart/form-data
|
|
168
|
-
|
|
169
|
-
file: (binary)
|
|
170
|
-
folder: avatars # 业务目录
|
|
171
|
-
```
|
|
172
|
-
|
|
173
|
-
### 5.2 预签名上传(大文件 > 5MB)
|
|
174
|
-
|
|
175
|
-
```
|
|
176
|
-
POST /files/presign
|
|
177
|
-
{
|
|
178
|
-
"filename": "report.pdf",
|
|
179
|
-
"size": 10485760,
|
|
180
|
-
"mimeType": "application/pdf"
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
# 返回预签名 URL,客户端直传 OSS/S3
|
|
184
|
-
{
|
|
185
|
-
"success": true,
|
|
186
|
-
"data": {
|
|
187
|
-
"uploadUrl": "https://oss.example.com/...",
|
|
188
|
-
"fileUrl": "https://cdn.example.com/files/xxx.pdf",
|
|
189
|
-
"expiresAt": "2026-09-10T12:05:00Z"
|
|
190
|
-
}
|
|
191
|
-
}
|
|
192
|
-
```
|
|
193
|
-
|
|
194
|
-
**规则:**
|
|
195
|
-
- 限制文件类型(白名单)
|
|
196
|
-
- 限制文件大小(单文件最大 50MB)
|
|
197
|
-
- 图片自动压缩、生成缩略图
|
|
198
|
-
- 敏感文件(身份证、营业执照)加密存储
|
|
199
|
-
|
|
200
|
-
---
|
|
201
|
-
|
|
202
|
-
## 6. 幂等性设计
|
|
203
|
-
|
|
204
|
-
### 6.1 幂等键(Idempotency-Key)
|
|
205
|
-
|
|
206
|
-
```
|
|
207
|
-
POST /orders
|
|
208
|
-
Idempotency-Key: {uuid}
|
|
209
|
-
|
|
210
|
-
{
|
|
211
|
-
"productId": 123,
|
|
212
|
-
"quantity": 2
|
|
213
|
-
}
|
|
214
|
-
```
|
|
215
|
-
|
|
216
|
-
**规则:**
|
|
217
|
-
- 客户端生成唯一键,服务端缓存结果 24 小时
|
|
218
|
-
- 相同幂等键重复请求,返回相同结果(不重复执行业务)
|
|
219
|
-
- 适用于:支付、下单、转账等关键操作
|
|
220
|
-
|
|
221
|
-
### 6.2 乐观锁(Version)
|
|
222
|
-
|
|
223
|
-
```
|
|
224
|
-
PUT /users/{id}
|
|
225
|
-
{
|
|
226
|
-
"name": "张三",
|
|
227
|
-
"version": 5
|
|
228
|
-
}
|
|
229
|
-
```
|
|
230
|
-
|
|
231
|
-
- 更新时校验 `version`,不一致返回 `409 Conflict`
|
|
232
|
-
- 适用于:并发修改同一资源的场景
|
|
233
|
-
|
|
234
|
-
---
|
|
235
|
-
|
|
236
|
-
## 7. 批量操作
|
|
237
|
-
|
|
238
|
-
### 7.1 批量查询
|
|
239
|
-
|
|
240
|
-
```
|
|
241
|
-
GET /users?ids=1,2,3,4,5
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
- `ids` 最多 100 个
|
|
245
|
-
- 超过 100 个返回 `400`,提示分批查询
|
|
246
|
-
|
|
247
|
-
### 7.2 批量创建/更新/删除
|
|
248
|
-
|
|
249
|
-
```
|
|
250
|
-
POST /users/batch
|
|
251
|
-
{
|
|
252
|
-
"items": [
|
|
253
|
-
{ "name": "张三", "phone": "13800138001" },
|
|
254
|
-
{ "name": "李四", "phone": "13800138002" }
|
|
255
|
-
]
|
|
256
|
-
}
|
|
257
|
-
```
|
|
258
|
-
|
|
259
|
-
**规则:**
|
|
260
|
-
- 批量最多 100 条
|
|
261
|
-
- 部分失败返回 `207 Multi-Status`,明细说明每条结果
|
|
262
|
-
- 全部失败返回 `400`,不执行任何操作(事务回滚)
|
|
263
|
-
|
|
264
|
-
---
|
|
265
|
-
|
|
266
|
-
## 8. 限流与熔断
|
|
267
|
-
|
|
268
|
-
### 8.1 限流规则
|
|
269
|
-
|
|
270
|
-
| 级别 | 阈值 | 说明 |
|
|
271
|
-
|:---|:---|:---|
|
|
272
|
-
| IP 级 | 100 次/分钟 | 防止单 IP 刷接口 |
|
|
273
|
-
| 用户级 | 1000 次/分钟 | 正常用户足够,异常行为拦截 |
|
|
274
|
-
| 接口级 | 根据业务设定 | 如短信接口 5 次/小时 |
|
|
275
|
-
|
|
276
|
-
### 8.2 熔断策略
|
|
277
|
-
|
|
278
|
-
- 错误率 > 50% 持续 1 分钟 → 熔断 30 秒
|
|
279
|
-
- 熔断期间返回 `503`,提示"服务暂不可用"
|
|
280
|
-
- 熔断恢复后,先放行少量请求探测,正常后全开
|
|
281
|
-
|
|
282
|
-
---
|
|
283
|
-
|
|
284
|
-
## 9. 接口文档规范
|
|
285
|
-
|
|
286
|
-
### 9.1 文档必备内容
|
|
287
|
-
|
|
288
|
-
每个接口文档必须包含:
|
|
289
|
-
1. **接口描述** — 一句话说明功能
|
|
290
|
-
2. **请求方法 + URL** — 含路径参数说明
|
|
291
|
-
3. **请求头** — 必填头列表
|
|
292
|
-
4. **请求参数** — Query / Body / Path,含类型、必填、示例、约束
|
|
293
|
-
5. **响应体** — 成功 + 失败示例
|
|
294
|
-
6. **错误码** — 该接口可能返回的所有错误码
|
|
295
|
-
7. **权限要求** — public / user / admin / super
|
|
296
|
-
8. **幂等性** — 是否幂等,幂等键要求
|
|
297
|
-
|
|
298
|
-
### 9.2 示例模板
|
|
299
|
-
|
|
300
|
-
```markdown
|
|
301
|
-
### 创建订单
|
|
302
|
-
|
|
303
|
-
**接口描述:** 用户创建新订单
|
|
304
|
-
|
|
305
|
-
**请求:**
|
|
306
|
-
```
|
|
307
|
-
POST /v1/orders
|
|
308
|
-
Authorization: Bearer {token}
|
|
309
|
-
Idempotency-Key: {uuid}
|
|
310
|
-
```
|
|
311
|
-
|
|
312
|
-
**请求体:**
|
|
313
|
-
| 字段 | 类型 | 必填 | 说明 | 示例 |
|
|
314
|
-
|:---|:---|:---:|:---|:---|
|
|
315
|
-
| productId | long | ✅ | 商品 ID | 123 |
|
|
316
|
-
| quantity | int | ✅ | 数量,1~99 | 2 |
|
|
317
|
-
| remark | string | ❌ | 订单备注,≤200字 | "请尽快发货" |
|
|
318
|
-
|
|
319
|
-
**响应:**
|
|
320
|
-
```json
|
|
321
|
-
{
|
|
322
|
-
"success": true,
|
|
323
|
-
"data": {
|
|
324
|
-
"orderId": "ORD-20260910-001",
|
|
325
|
-
"status": "PENDING_PAYMENT",
|
|
326
|
-
"totalAmount": 19900,
|
|
327
|
-
"createdAt": "2026-09-10T12:00:00Z"
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
```
|
|
331
|
-
|
|
332
|
-
**错误码:**
|
|
333
|
-
| 错误码 | 说明 |
|
|
334
|
-
|:---|:---|
|
|
335
|
-
| BIZ_001 | productId 不存在 |
|
|
336
|
-
| BIZ_005 | 库存不足 |
|
|
337
|
-
| BIZ_003 | 重复提交(相同幂等键) |
|
|
338
|
-
```
|
|
@@ -1,44 +0,0 @@
|
|
|
1
|
-
# SpecCore CI — GitHub Actions
|
|
2
|
-
# Copy this file to your project: .github/workflows/speccore-ci.yml
|
|
3
|
-
|
|
4
|
-
name: SpecCore Validate
|
|
5
|
-
|
|
6
|
-
on:
|
|
7
|
-
push:
|
|
8
|
-
branches: [main, feature/*]
|
|
9
|
-
pull_request:
|
|
10
|
-
branches: [main]
|
|
11
|
-
|
|
12
|
-
jobs:
|
|
13
|
-
validate:
|
|
14
|
-
runs-on: ubuntu-latest
|
|
15
|
-
steps:
|
|
16
|
-
- uses: actions/checkout@v4
|
|
17
|
-
|
|
18
|
-
- name: Setup Node.js
|
|
19
|
-
uses: actions/setup-node@v4
|
|
20
|
-
with:
|
|
21
|
-
node-version: '20'
|
|
22
|
-
|
|
23
|
-
- name: Install SpecCore
|
|
24
|
-
run: npm install -g speccore
|
|
25
|
-
|
|
26
|
-
- name: Validate Specs
|
|
27
|
-
run: |
|
|
28
|
-
speccore validate --full
|
|
29
|
-
if [ $? -ne 0 ]; then
|
|
30
|
-
echo "⚠️ Spec validation failed. Please fix the issues above."
|
|
31
|
-
exit 1
|
|
32
|
-
fi
|
|
33
|
-
|
|
34
|
-
- name: Check Project Health
|
|
35
|
-
run: speccore health
|
|
36
|
-
|
|
37
|
-
- name: Progress Report
|
|
38
|
-
run: speccore progress --format=json > progress.json
|
|
39
|
-
|
|
40
|
-
- name: Upload Progress Artifact
|
|
41
|
-
uses: actions/upload-artifact@v4
|
|
42
|
-
with:
|
|
43
|
-
name: spec-progress
|
|
44
|
-
path: progress.json
|