cdspec 0.1.0 → 0.1.3

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.
Files changed (67) hide show
  1. package/README.md +86 -33
  2. package/dist/cli.js +1 -93
  3. package/dist/config/default.js +1 -48
  4. package/dist/config/loader.js +1 -30
  5. package/dist/config/path.js +1 -11
  6. package/dist/config/types.js +1 -1
  7. package/dist/skill-core/adapters/claudecode-adapter.js +1 -35
  8. package/dist/skill-core/adapters/codex-adapter.js +1 -28
  9. package/dist/skill-core/adapters/iflow-adapter.js +1 -39
  10. package/dist/skill-core/adapters/index.js +1 -34
  11. package/dist/skill-core/adapters/shared.js +1 -36
  12. package/dist/skill-core/manifest-loader.js +1 -63
  13. package/dist/skill-core/scaffold.js +1 -169
  14. package/dist/skill-core/service.js +1 -156
  15. package/dist/skill-core/tool-interactions.js +1 -70
  16. package/dist/skill-core/types.js +1 -1
  17. package/dist/skill-core/validator.js +1 -25
  18. package/dist/utils/frontmatter.js +1 -40
  19. package/dist/utils/fs.js +1 -37
  20. package/package.json +12 -2
  21. package/templates/{standards-backend → backend-standard}/SKILL.md +55 -55
  22. package/templates/backend-standard/agents/openai.yaml +4 -0
  23. package/templates/{standards-backend → backend-standard}/references/DDD/346/236/266/346/236/204/347/272/246/346/235/237.md +103 -103
  24. package/templates/{standards-backend → backend-standard}/references/JUC/345/271/266/345/217/221/350/247/204/350/214/203.md +232 -232
  25. package/templates/{standards-backend → backend-standard}/references//344/274/240/347/273/237/344/270/211/345/261/202/346/236/266/346/236/204/347/272/246/346/235/237.md +35 -35
  26. package/templates/{standards-backend → backend-standard}/references//345/220/216/347/253/257/345/274/200/345/217/221/350/247/204/350/214/203.md +49 -49
  27. package/templates/{standards-backend → backend-standard}/references//346/225/260/346/215/256/345/272/223/350/256/276/350/256/241/350/247/204/350/214/203.md +116 -116
  28. package/templates/{standards-backend → backend-standard}/references//350/256/276/350/256/241/346/250/241/345/274/217/350/220/275/345/234/260/346/211/213/345/206/214.md +395 -395
  29. package/templates/{frontend-develop-standard → frontend-standard}/SKILL.md +63 -63
  30. package/templates/frontend-standard/agents/openai.yaml +4 -0
  31. package/templates/{frontend-develop-standard/references/frontend_develop_standard.md → frontend-standard/references/frontend_standard.md} +28 -321
  32. package/AGENTS.md +0 -14
  33. package/CLAUDE.md +0 -10
  34. package/dist/skill-core/agent-config.js +0 -40
  35. package/dist/task-core/parser.js +0 -70
  36. package/dist/task-core/service.js +0 -28
  37. package/dist/task-core/storage.js +0 -159
  38. package/dist/task-core/types.js +0 -1
  39. package/src/cli.ts +0 -105
  40. package/src/config/default.ts +0 -51
  41. package/src/config/loader.ts +0 -37
  42. package/src/config/path.ts +0 -13
  43. package/src/config/types.ts +0 -22
  44. package/src/skill-core/adapters/claudecode-adapter.ts +0 -45
  45. package/src/skill-core/adapters/codex-adapter.ts +0 -36
  46. package/src/skill-core/adapters/iflow-adapter.ts +0 -49
  47. package/src/skill-core/adapters/index.ts +0 -39
  48. package/src/skill-core/adapters/shared.ts +0 -45
  49. package/src/skill-core/manifest-loader.ts +0 -79
  50. package/src/skill-core/scaffold.ts +0 -192
  51. package/src/skill-core/service.ts +0 -199
  52. package/src/skill-core/tool-interactions.ts +0 -95
  53. package/src/skill-core/types.ts +0 -22
  54. package/src/skill-core/validator.ts +0 -28
  55. package/src/task-core/parser.ts +0 -89
  56. package/src/task-core/service.ts +0 -49
  57. package/src/task-core/storage.ts +0 -177
  58. package/src/task-core/types.ts +0 -15
  59. package/src/types/yaml.d.ts +0 -4
  60. package/src/utils/frontmatter.ts +0 -55
  61. package/src/utils/fs.ts +0 -41
  62. package/templates/frontend-develop-standard/agents/openai.yaml +0 -4
  63. package/templates/standards-backend/agents/openai.yaml +0 -4
  64. package/tests/skill.test.ts +0 -191
  65. package/tests/task.test.ts +0 -55
  66. package/tsconfig.json +0 -16
  67. package/vitest.config.ts +0 -9
@@ -1,116 +1,116 @@
1
- # 数据库设计规范(部门版)
2
-
3
- ## 1. 命名规范
4
- 1. 数据库对象名使用小写字母、数字、下划线,禁止数字开头。
5
- 2. 表名使用模块前缀:`sss_xxx`,关系表使用 `sss_xxx_yyy_rel`。
6
- 3. 字段名全小写下划线,命名必须可读且语义明确。
7
- 4. 同语义字段在不同表必须同名同类型。
8
- 5. 关联字段统一 `xxx_id`,类型与被关联主键一致。
9
-
10
- ## 2. 字段设计
11
- 1. 时间字段:精确到时分秒使用 `xxx_time`(`datetime`);仅日期使用 `xxx_date`(`date`)。
12
- 2. 标志字段使用 `xxx_flag`;逻辑删除建议统一 `del_flag`(0 未删除,1 已删除)。
13
- 3. 类型字段统一 `xxx_type` 或 `xxx_category`,避免含义不清的数值编码。
14
- 4. 布尔字段命名建议使用 `is_` / `has_` 前缀,避免否定命名。
15
-
16
- ## 3. 表结构基本约束
17
- 1. 存储引擎统一 InnoDB。
18
- 2. 字符集统一 `utf8mb4`,排序规则统一 `utf8mb4_general_ci`。
19
- 3. 每张表必须有表注释,每个字段必须有字段注释。
20
- 4. 主键建议单一代理键;桥接表可按场景使用复合主键。
21
-
22
- ## 4. 索引规范
23
- 1. 索引命名使用 `idx_表名_字段名`。
24
- 2. 唯一约束命名使用 `uk_表名_字段名`。
25
- 3. 关联字段必须建索引,避免联表全表扫描。
26
- 4. 单表索引数量建议控制,避免无效和重复索引。
27
- 5. 联合索引遵循最左前缀原则,结合常见查询条件设计。
28
-
29
- ## 5. SQL 编写规范
30
- 1. 禁止 `select *`,只查询必要列。
31
- 2. 多表查询统一使用别名并带别名前缀。
32
- 3. 分页查询必须限制返回量,避免深分页性能问题。
33
- 4. 避免在索引列上使用函数、隐式转换、前导模糊匹配。
34
- 5. 条件值可能为空时,使用 `is null` / `is not null` 语义表达。
35
-
36
- ## 6. 变更脚本规范
37
- 1. 版本号采用 `<major>.<minor>.<patch>`。
38
- 2. 脚本命名:`[V|R][版本号]_[序号]__[模块]_[操作]_[描述].sql`。
39
- 3. `V` 脚本只执行一次且不允许改动;`R` 脚本每次运行可重复执行。
40
- 4. 生产变更必须提供回滚策略或数据修复策略。
41
-
42
- ## 7. 设计评审清单
43
- 1. 是否存在冗余字段或语义不清字段。
44
- 2. 是否缺失必要索引或存在过度索引。
45
- 3. 是否满足基础字段要求(见本文第 8 章)。
46
- 4. 是否考虑了租户、并发更新、历史追溯需求。
47
-
48
- ## 8. 数据表基线字段规范(内置)
49
-
50
- ### 8.1 普通业务表(默认必须)
51
- 以下字段为部门级默认基线,除评审通过外不得删除。
52
-
53
- ```sql
54
- `id` varchar(36) NOT NULL COMMENT '主键',
55
- `del_flag` tinyint(4) DEFAULT '0' COMMENT '逻辑删除标志:0-未删除,1-已删除',
56
- `create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
57
- `create_time` datetime DEFAULT NULL COMMENT '创建时间',
58
- `update_by` varchar(50) DEFAULT NULL COMMENT '更新人',
59
- `update_time` datetime DEFAULT NULL COMMENT '更新时间',
60
- `version` int(11) DEFAULT '0' COMMENT '乐观锁版本号'
61
- ```
62
-
63
- 如启用多租户,追加:
64
-
65
- ```sql
66
- `tenant_id` int(11) DEFAULT NULL COMMENT '租户ID'
67
- ```
68
-
69
- ### 8.2 关联表(中间关系表)例外规则
70
- 纯关联表允许精简字段,不强制套用 8.1 的完整审计字段。典型形态如下:
71
-
72
- ```sql
73
- `id` varchar(36) NOT NULL COMMENT '主键',
74
- `user_id` varchar(36) NOT NULL COMMENT '用户ID',
75
- `role_id` varchar(36) NOT NULL COMMENT '角色ID'
76
- ```
77
-
78
- 多租户场景建议追加:
79
-
80
- ```sql
81
- `tenant_id` int(11) DEFAULT NULL COMMENT '租户ID'
82
- ```
83
-
84
- 补充约束:
85
- 1. 关联表最少保证 `id + 两端关联ID`,不强制 `del_flag/create_*/update_*/version`。
86
- 2. 若关联关系需要审计追踪、逻辑删除或并发控制,再按 8.1 补齐字段。
87
- 3. 应建立唯一约束避免重复关系(例如 `uk_user_role(user_id, role_id[, tenant_id])`)。
88
- 4. 应给关联 ID 建索引(`idx_xxx_user_id`、`idx_xxx_role_id`)。
89
-
90
- ### 8.3 历史表(默认必须)
91
- 历史表应包含原表核心业务字段,并追加:
92
-
93
- ```sql
94
- `instance_id` varchar(36) DEFAULT NULL COMMENT '历史实例ID',
95
- `transaction_by` varchar(32) DEFAULT NULL COMMENT '变更人',
96
- `transaction_time` datetime DEFAULT NULL COMMENT '变更时间'
97
- ```
98
-
99
- ### 8.4 推荐建表示例(普通业务表)
100
- ```sql
101
- create table `wms_example_order` (
102
- `id` varchar(36) not null comment '主键',
103
- `order_no` varchar(64) not null comment '单据编号',
104
- `order_status` varchar(32) not null comment '单据状态',
105
- `del_flag` tinyint(4) default '0' comment '逻辑删除标志:0-未删除,1-已删除',
106
- `create_by` varchar(50) default null comment '创建人',
107
- `create_time` datetime default null comment '创建时间',
108
- `update_by` varchar(50) default null comment '更新人',
109
- `update_time` datetime default null comment '更新时间',
110
- `tenant_id` int(11) default null comment '租户ID',
111
- `version` int(11) default '0' comment '乐观锁版本号',
112
- primary key (`id`),
113
- key `idx_wms_example_order_order_no` (`order_no`),
114
- key `idx_wms_example_order_status` (`order_status`)
115
- ) engine=innodb default charset=utf8mb4 collate=utf8mb4_general_ci comment='示例订单表';
116
- ```
1
+ # 数据库设计规范(部门版)
2
+
3
+ ## 1. 命名规范
4
+ 1. 数据库对象名使用小写字母、数字、下划线,禁止数字开头。
5
+ 2. 表名使用模块前缀:`sss_xxx`,关系表使用 `sss_xxx_yyy_rel`。
6
+ 3. 字段名全小写下划线,命名必须可读且语义明确。
7
+ 4. 同语义字段在不同表必须同名同类型。
8
+ 5. 关联字段统一 `xxx_id`,类型与被关联主键一致。
9
+
10
+ ## 2. 字段设计
11
+ 1. 时间字段:精确到时分秒使用 `xxx_time`(`datetime`);仅日期使用 `xxx_date`(`date`)。
12
+ 2. 标志字段使用 `xxx_flag`;逻辑删除建议统一 `del_flag`(0 未删除,1 已删除)。
13
+ 3. 类型字段统一 `xxx_type` 或 `xxx_category`,避免含义不清的数值编码。
14
+ 4. 布尔字段命名建议使用 `is_` / `has_` 前缀,避免否定命名。
15
+
16
+ ## 3. 表结构基本约束
17
+ 1. 存储引擎统一 InnoDB。
18
+ 2. 字符集统一 `utf8mb4`,排序规则统一 `utf8mb4_general_ci`。
19
+ 3. 每张表必须有表注释,每个字段必须有字段注释。
20
+ 4. 主键建议单一代理键;桥接表可按场景使用复合主键。
21
+
22
+ ## 4. 索引规范
23
+ 1. 索引命名使用 `idx_表名_字段名`。
24
+ 2. 唯一约束命名使用 `uk_表名_字段名`。
25
+ 3. 关联字段必须建索引,避免联表全表扫描。
26
+ 4. 单表索引数量建议控制,避免无效和重复索引。
27
+ 5. 联合索引遵循最左前缀原则,结合常见查询条件设计。
28
+
29
+ ## 5. SQL 编写规范
30
+ 1. 禁止 `select *`,只查询必要列。
31
+ 2. 多表查询统一使用别名并带别名前缀。
32
+ 3. 分页查询必须限制返回量,避免深分页性能问题。
33
+ 4. 避免在索引列上使用函数、隐式转换、前导模糊匹配。
34
+ 5. 条件值可能为空时,使用 `is null` / `is not null` 语义表达。
35
+
36
+ ## 6. 变更脚本规范
37
+ 1. 版本号采用 `<major>.<minor>.<patch>`。
38
+ 2. 脚本命名:`[V|R][版本号]_[序号]__[模块]_[操作]_[描述].sql`。
39
+ 3. `V` 脚本只执行一次且不允许改动;`R` 脚本每次运行可重复执行。
40
+ 4. 生产变更必须提供回滚策略或数据修复策略。
41
+
42
+ ## 7. 设计评审清单
43
+ 1. 是否存在冗余字段或语义不清字段。
44
+ 2. 是否缺失必要索引或存在过度索引。
45
+ 3. 是否满足基础字段要求(见本文第 8 章)。
46
+ 4. 是否考虑了租户、并发更新、历史追溯需求。
47
+
48
+ ## 8. 数据表基线字段规范(内置)
49
+
50
+ ### 8.1 普通业务表(默认必须)
51
+ 以下字段为部门级默认基线,除评审通过外不得删除。
52
+
53
+ ```sql
54
+ `id` varchar(36) NOT NULL COMMENT '主键',
55
+ `del_flag` tinyint(4) DEFAULT '0' COMMENT '逻辑删除标志:0-未删除,1-已删除',
56
+ `create_by` varchar(50) DEFAULT NULL COMMENT '创建人',
57
+ `create_time` datetime DEFAULT NULL COMMENT '创建时间',
58
+ `update_by` varchar(50) DEFAULT NULL COMMENT '更新人',
59
+ `update_time` datetime DEFAULT NULL COMMENT '更新时间',
60
+ `version` int(11) DEFAULT '0' COMMENT '乐观锁版本号'
61
+ ```
62
+
63
+ 如启用多租户,追加:
64
+
65
+ ```sql
66
+ `tenant_id` int(11) DEFAULT NULL COMMENT '租户ID'
67
+ ```
68
+
69
+ ### 8.2 关联表(中间关系表)例外规则
70
+ 纯关联表允许精简字段,不强制套用 8.1 的完整审计字段。典型形态如下:
71
+
72
+ ```sql
73
+ `id` varchar(36) NOT NULL COMMENT '主键',
74
+ `user_id` varchar(36) NOT NULL COMMENT '用户ID',
75
+ `role_id` varchar(36) NOT NULL COMMENT '角色ID'
76
+ ```
77
+
78
+ 多租户场景建议追加:
79
+
80
+ ```sql
81
+ `tenant_id` int(11) DEFAULT NULL COMMENT '租户ID'
82
+ ```
83
+
84
+ 补充约束:
85
+ 1. 关联表最少保证 `id + 两端关联ID`,不强制 `del_flag/create_*/update_*/version`。
86
+ 2. 若关联关系需要审计追踪、逻辑删除或并发控制,再按 8.1 补齐字段。
87
+ 3. 应建立唯一约束避免重复关系(例如 `uk_user_role(user_id, role_id[, tenant_id])`)。
88
+ 4. 应给关联 ID 建索引(`idx_xxx_user_id`、`idx_xxx_role_id`)。
89
+
90
+ ### 8.3 历史表(默认必须)
91
+ 历史表应包含原表核心业务字段,并追加:
92
+
93
+ ```sql
94
+ `instance_id` varchar(36) DEFAULT NULL COMMENT '历史实例ID',
95
+ `transaction_by` varchar(32) DEFAULT NULL COMMENT '变更人',
96
+ `transaction_time` datetime DEFAULT NULL COMMENT '变更时间'
97
+ ```
98
+
99
+ ### 8.4 推荐建表示例(普通业务表)
100
+ ```sql
101
+ create table `wms_example_order` (
102
+ `id` varchar(36) not null comment '主键',
103
+ `order_no` varchar(64) not null comment '单据编号',
104
+ `order_status` varchar(32) not null comment '单据状态',
105
+ `del_flag` tinyint(4) default '0' comment '逻辑删除标志:0-未删除,1-已删除',
106
+ `create_by` varchar(50) default null comment '创建人',
107
+ `create_time` datetime default null comment '创建时间',
108
+ `update_by` varchar(50) default null comment '更新人',
109
+ `update_time` datetime default null comment '更新时间',
110
+ `tenant_id` int(11) default null comment '租户ID',
111
+ `version` int(11) default '0' comment '乐观锁版本号',
112
+ primary key (`id`),
113
+ key `idx_wms_example_order_order_no` (`order_no`),
114
+ key `idx_wms_example_order_status` (`order_status`)
115
+ ) engine=innodb default charset=utf8mb4 collate=utf8mb4_general_ci comment='示例订单表';
116
+ ```