scaffold-engine 0.1.0

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 (52) hide show
  1. package/README.md +117 -0
  2. package/engine.project.example.json +23 -0
  3. package/package.json +49 -0
  4. package/scripts/postinstall.cjs +42 -0
  5. package/specs/catalogs/action-templates.yaml +189 -0
  6. package/specs/catalogs/child-templates.yaml +54 -0
  7. package/specs/catalogs/field-fragments.yaml +203 -0
  8. package/specs/catalogs/object-catalog.yaml +35 -0
  9. package/specs/catalogs/object-name-suggestions.yaml +30 -0
  10. package/specs/catalogs/object-templates.yaml +45 -0
  11. package/specs/catalogs/pattern-catalog.yaml +48 -0
  12. package/specs/catalogs/status-templates.yaml +16 -0
  13. package/specs/projects/crm-pilot/customer.yaml +122 -0
  14. package/specs/projects/crm-pilot/lead.from-nl.yaml +76 -0
  15. package/specs/projects/crm-pilot/lead.yaml +82 -0
  16. package/specs/projects/generated-from-nl/crm-customer.yaml +158 -0
  17. package/specs/projects/generated-from-nl/crm-lead.yaml +76 -0
  18. package/specs/projects/generated-from-nl/crm-opportunity.yaml +78 -0
  19. package/specs/projects/generated-from-nl/crm-quote.yaml +78 -0
  20. package/specs/projects/generated-from-nl/custom-documentLines.yaml +125 -0
  21. package/specs/projects/generated-from-nl/custom-treeEntity.yaml +78 -0
  22. package/specs/projects/generated-from-nl/erp-material-pattern-test.yaml +79 -0
  23. package/specs/projects/generated-from-nl/erp-material.yaml +78 -0
  24. package/specs/projects/generated-from-nl/hr-orgUnit.yaml +100 -0
  25. package/specs/projects/pattern-examples/document-lines-demo.yaml +125 -0
  26. package/specs/projects/pattern-examples/tree-entity-demo.yaml +79 -0
  27. package/specs/rules/business-model.schema.json +262 -0
  28. package/specs/rules/extension-boundaries.json +26 -0
  29. package/specs/rules/requirement-draft.schema.json +75 -0
  30. package/specs/rules/spec-governance.json +29 -0
  31. package/specs/templates/crm/customer.template.yaml +121 -0
  32. package/specs/templates/crm/lead.template.yaml +82 -0
  33. package/tools/analyze-requirement.cjs +950 -0
  34. package/tools/cli.cjs +59 -0
  35. package/tools/create-draft.cjs +18 -0
  36. package/tools/engine.cjs +47 -0
  37. package/tools/generate-draft.cjs +33 -0
  38. package/tools/generate-module.cjs +1218 -0
  39. package/tools/init-project.cjs +194 -0
  40. package/tools/lib/draft-toolkit.cjs +357 -0
  41. package/tools/lib/model-toolkit.cjs +482 -0
  42. package/tools/lib/pattern-renderers.cjs +166 -0
  43. package/tools/lib/renderers/detail-page-renderer.cjs +327 -0
  44. package/tools/lib/renderers/form-page-renderer.cjs +553 -0
  45. package/tools/lib/renderers/list-page-renderer.cjs +371 -0
  46. package/tools/lib/runtime-config.cjs +154 -0
  47. package/tools/patch-draft.cjs +57 -0
  48. package/tools/prompts/business-model-prompt.md +58 -0
  49. package/tools/run-requirement.cjs +672 -0
  50. package/tools/validate-draft.cjs +32 -0
  51. package/tools/validate-model.cjs +140 -0
  52. package/tools/verify-patterns.cjs +67 -0
@@ -0,0 +1,78 @@
1
+ meta:
2
+ domain: crm
3
+ object: opportunity
4
+ label: 商机
5
+ version: 0.1.0
6
+ description: 由 requirement:analyze 从自然语言需求推导出的候选业务模型。
7
+ data:
8
+ table: crm_opportunity
9
+ fields:
10
+ - name: opportunityCode
11
+ label: 商机编号
12
+ type: string
13
+ required: true
14
+ unique: true
15
+ - name: opportunityName
16
+ label: 商机名称
17
+ type: string
18
+ required: true
19
+ - name: customerName
20
+ label: 客户名称
21
+ type: string
22
+ - name: ownerName
23
+ label: 负责人
24
+ type: string
25
+ - name: stage
26
+ label: 商机阶段
27
+ type: enum
28
+ options:
29
+ - new
30
+ - qualifying
31
+ - proposal
32
+ - won
33
+ - lost
34
+ default: new
35
+ - name: status
36
+ label: 状态
37
+ type: enum
38
+ options:
39
+ - draft
40
+ - active
41
+ - closed
42
+ default: draft
43
+ app:
44
+ actions:
45
+ - create
46
+ - update
47
+ - list
48
+ - detail
49
+ defaultStatus: draft
50
+ ui:
51
+ list:
52
+ columns:
53
+ - opportunityCode
54
+ - opportunityName
55
+ - customerName
56
+ - ownerName
57
+ - stage
58
+ - status
59
+ - createdAt
60
+ filters:
61
+ - opportunityCode
62
+ - opportunityName
63
+ - customerName
64
+ - stage
65
+ - status
66
+ form:
67
+ groups:
68
+ - title: 基本信息
69
+ fields:
70
+ - opportunityCode
71
+ - opportunityName
72
+ - customerName
73
+ - ownerName
74
+ - stage
75
+ - status
76
+ detail:
77
+ sections:
78
+ - basicInfo
@@ -0,0 +1,78 @@
1
+ meta:
2
+ domain: crm
3
+ object: quote
4
+ label: 报价
5
+ version: 0.1.0
6
+ description: 由 requirement:analyze 从自然语言需求推导出的候选业务模型。
7
+ data:
8
+ table: crm_quote
9
+ fields:
10
+ - name: quoteCode
11
+ label: 报价编号
12
+ type: string
13
+ required: true
14
+ unique: true
15
+ - name: quoteName
16
+ label: 报价名称
17
+ type: string
18
+ required: true
19
+ - name: customerName
20
+ label: 客户名称
21
+ type: string
22
+ - name: ownerName
23
+ label: 负责人
24
+ type: string
25
+ - name: stage
26
+ label: 报价阶段
27
+ type: enum
28
+ options:
29
+ - draft
30
+ - reviewing
31
+ - sent
32
+ - accepted
33
+ - rejected
34
+ default: draft
35
+ - name: status
36
+ label: 状态
37
+ type: enum
38
+ options:
39
+ - draft
40
+ - active
41
+ - closed
42
+ default: draft
43
+ app:
44
+ actions:
45
+ - create
46
+ - update
47
+ - list
48
+ - detail
49
+ defaultStatus: draft
50
+ ui:
51
+ list:
52
+ columns:
53
+ - quoteCode
54
+ - quoteName
55
+ - customerName
56
+ - ownerName
57
+ - stage
58
+ - status
59
+ - createdAt
60
+ filters:
61
+ - quoteCode
62
+ - quoteName
63
+ - customerName
64
+ - stage
65
+ - status
66
+ form:
67
+ groups:
68
+ - title: 基本信息
69
+ fields:
70
+ - quoteCode
71
+ - quoteName
72
+ - customerName
73
+ - ownerName
74
+ - stage
75
+ - status
76
+ detail:
77
+ sections:
78
+ - basicInfo
@@ -0,0 +1,125 @@
1
+ meta:
2
+ domain: custom
3
+ object: documentLinesSample
4
+ label: 单据明细对象示例
5
+ pattern: documentLines
6
+ version: 0.1.0
7
+ description: 由 requirement:analyze 从自然语言需求推导出的候选业务模型。
8
+ data:
9
+ table: custom_document_lines_sample
10
+ fields:
11
+ - name: documentNo
12
+ label: 单据编号
13
+ type: string
14
+ required: true
15
+ unique: true
16
+ - name: documentTitle
17
+ label: 单据标题
18
+ type: string
19
+ required: true
20
+ - name: bizDate
21
+ label: 业务日期
22
+ type: date
23
+ required: true
24
+ - name: status
25
+ label: 状态
26
+ type: enum
27
+ options:
28
+ - draft
29
+ - active
30
+ - inactive
31
+ - blocked
32
+ default: draft
33
+ children:
34
+ - name: lines
35
+ label: 明细行
36
+ table: custom_document_lines_sample_line
37
+ foreignKey: documentId
38
+ fields:
39
+ - name: lineNo
40
+ label: 行号
41
+ type: string
42
+ required: true
43
+ - name: itemCode
44
+ label: 项目编码
45
+ type: string
46
+ required: true
47
+ - name: itemName
48
+ label: 项目名称
49
+ type: string
50
+ required: true
51
+ - name: quantity
52
+ label: 数量
53
+ type: number
54
+ required: true
55
+ - name: unitPrice
56
+ label: 单价
57
+ type: number
58
+ - name: amount
59
+ label: 金额
60
+ type: number
61
+ app:
62
+ actions:
63
+ - create
64
+ - update
65
+ - list
66
+ - detail
67
+ - submit
68
+ - approve
69
+ - reject
70
+ defaultStatus: draft
71
+ statusFlow:
72
+ enabled: true
73
+ states:
74
+ - draft
75
+ - submitted
76
+ - approved
77
+ - rejected
78
+ transitions:
79
+ - action: submit
80
+ from:
81
+ - draft
82
+ - rejected
83
+ to: submitted
84
+ - action: approve
85
+ from:
86
+ - submitted
87
+ to: approved
88
+ - action: reject
89
+ from:
90
+ - submitted
91
+ to: rejected
92
+ errorCodes:
93
+ - code: VALIDATION_FAILED
94
+ message: 输入校验失败
95
+ - code: RECORD_NOT_FOUND
96
+ message: 记录不存在
97
+ - code: DUPLICATE_KEY
98
+ message: 唯一键冲突
99
+ ui:
100
+ list:
101
+ columns:
102
+ - documentNo
103
+ - documentTitle
104
+ - bizDate
105
+ - status
106
+ - createdAt
107
+ filters:
108
+ - documentNo
109
+ - documentTitle
110
+ - bizDate
111
+ - status
112
+ form:
113
+ groups:
114
+ - title: 基本信息
115
+ fields:
116
+ - documentNo
117
+ - documentTitle
118
+ - bizDate
119
+ - status
120
+ - title: 明细行
121
+ childTable: lines
122
+ detail:
123
+ sections:
124
+ - basicInfo
125
+ - lines
@@ -0,0 +1,78 @@
1
+ meta:
2
+ domain: custom
3
+ object: treeEntitySample
4
+ label: 树形对象示例
5
+ pattern: treeEntity
6
+ version: 0.1.0
7
+ description: 由 requirement:analyze 从自然语言需求推导出的候选业务模型。
8
+ data:
9
+ table: custom_tree_entity_sample
10
+ fields:
11
+ - name: categoryCode
12
+ label: 节点编码
13
+ type: string
14
+ required: true
15
+ unique: true
16
+ - name: categoryName
17
+ label: 节点名称
18
+ type: string
19
+ required: true
20
+ - name: parentId
21
+ label: 父节点ID
22
+ type: integer
23
+ - name: parentName
24
+ label: 父节点名称
25
+ type: string
26
+ - name: sortOrder
27
+ label: 排序号
28
+ type: integer
29
+ - name: status
30
+ label: 状态
31
+ type: enum
32
+ options:
33
+ - draft
34
+ - active
35
+ - inactive
36
+ - blocked
37
+ default: draft
38
+ app:
39
+ actions:
40
+ - create
41
+ - update
42
+ - list
43
+ - detail
44
+ defaultStatus: draft
45
+ errorCodes:
46
+ - code: VALIDATION_FAILED
47
+ message: 输入校验失败
48
+ - code: RECORD_NOT_FOUND
49
+ message: 记录不存在
50
+ - code: DUPLICATE_KEY
51
+ message: 唯一键冲突
52
+ ui:
53
+ list:
54
+ columns:
55
+ - categoryCode
56
+ - categoryName
57
+ - parentName
58
+ - sortOrder
59
+ - status
60
+ - createdAt
61
+ filters:
62
+ - categoryCode
63
+ - categoryName
64
+ - parentName
65
+ - status
66
+ form:
67
+ groups:
68
+ - title: 基本信息
69
+ fields:
70
+ - categoryCode
71
+ - categoryName
72
+ - parentId
73
+ - parentName
74
+ - sortOrder
75
+ - status
76
+ detail:
77
+ sections:
78
+ - basicInfo
@@ -0,0 +1,79 @@
1
+ meta:
2
+ domain: erp
3
+ object: material
4
+ label: 物料
5
+ pattern: masterData
6
+ version: 0.1.0
7
+ description: 由 requirement:analyze 从自然语言需求推导出的候选业务模型。
8
+ data:
9
+ table: erp_material
10
+ fields:
11
+ - name: materialCode
12
+ label: 物料编码
13
+ type: string
14
+ required: true
15
+ unique: true
16
+ - name: materialName
17
+ label: 物料名称
18
+ type: string
19
+ required: true
20
+ - name: materialType
21
+ label: 物料类型
22
+ type: enum
23
+ options:
24
+ - ROH
25
+ - HALB
26
+ - FERT
27
+ - HIBE
28
+ - NLAG
29
+ default: FERT
30
+ - name: materialGroup
31
+ label: 物料组
32
+ type: string
33
+ - name: baseUnit
34
+ label: 基本计量单位
35
+ type: string
36
+ - name: status
37
+ label: 状态
38
+ type: enum
39
+ options:
40
+ - draft
41
+ - active
42
+ - inactive
43
+ - blocked
44
+ default: draft
45
+ app:
46
+ actions:
47
+ - create
48
+ - update
49
+ - list
50
+ - detail
51
+ defaultStatus: draft
52
+ ui:
53
+ list:
54
+ columns:
55
+ - materialCode
56
+ - materialName
57
+ - materialType
58
+ - materialGroup
59
+ - status
60
+ - createdAt
61
+ filters:
62
+ - materialCode
63
+ - materialName
64
+ - materialType
65
+ - materialGroup
66
+ - status
67
+ form:
68
+ groups:
69
+ - title: 基本信息
70
+ fields:
71
+ - materialCode
72
+ - materialName
73
+ - materialType
74
+ - materialGroup
75
+ - baseUnit
76
+ - status
77
+ detail:
78
+ sections:
79
+ - basicInfo
@@ -0,0 +1,78 @@
1
+ meta:
2
+ domain: erp
3
+ object: material
4
+ label: 物料
5
+ version: 0.1.0
6
+ description: 由 requirement:analyze 从自然语言需求推导出的候选业务模型。
7
+ data:
8
+ table: erp_material
9
+ fields:
10
+ - name: materialCode
11
+ label: 物料编码
12
+ type: string
13
+ required: true
14
+ unique: true
15
+ - name: materialName
16
+ label: 物料名称
17
+ type: string
18
+ required: true
19
+ - name: materialType
20
+ label: 物料类型
21
+ type: enum
22
+ options:
23
+ - ROH
24
+ - HALB
25
+ - FERT
26
+ - HIBE
27
+ - NLAG
28
+ default: FERT
29
+ - name: materialGroup
30
+ label: 物料组
31
+ type: string
32
+ - name: baseUnit
33
+ label: 基本计量单位
34
+ type: string
35
+ - name: status
36
+ label: 状态
37
+ type: enum
38
+ options:
39
+ - draft
40
+ - active
41
+ - inactive
42
+ - blocked
43
+ default: draft
44
+ app:
45
+ actions:
46
+ - create
47
+ - update
48
+ - list
49
+ - detail
50
+ defaultStatus: draft
51
+ ui:
52
+ list:
53
+ columns:
54
+ - materialCode
55
+ - materialName
56
+ - materialType
57
+ - materialGroup
58
+ - status
59
+ - createdAt
60
+ filters:
61
+ - materialCode
62
+ - materialName
63
+ - materialType
64
+ - materialGroup
65
+ - status
66
+ form:
67
+ groups:
68
+ - title: 基本信息
69
+ fields:
70
+ - materialCode
71
+ - materialName
72
+ - materialType
73
+ - materialGroup
74
+ - baseUnit
75
+ - status
76
+ detail:
77
+ sections:
78
+ - basicInfo
@@ -0,0 +1,100 @@
1
+ meta:
2
+ domain: hr
3
+ object: orgUnit
4
+ label: 组织单元
5
+ pattern: treeEntity
6
+ version: 0.1.0
7
+ description: 由 requirement:analyze 从自然语言需求推导出的候选业务模型。
8
+ data:
9
+ table: hr_org_unit
10
+ fields:
11
+ - name: categoryCode
12
+ label: 节点编码
13
+ type: string
14
+ required: true
15
+ unique: true
16
+ - name: categoryName
17
+ label: 节点名称
18
+ type: string
19
+ required: true
20
+ - name: parentId
21
+ label: 父节点ID
22
+ type: integer
23
+ - name: parentName
24
+ label: 父节点名称
25
+ type: string
26
+ - name: sortOrder
27
+ label: 排序号
28
+ type: integer
29
+ - name: status
30
+ label: 状态
31
+ type: enum
32
+ options:
33
+ - draft
34
+ - active
35
+ - inactive
36
+ - blocked
37
+ default: draft
38
+ app:
39
+ actions:
40
+ - create
41
+ - update
42
+ - list
43
+ - detail
44
+ defaultStatus: draft
45
+ responseContract:
46
+ envelope: standard
47
+ listSchema: pagedList
48
+ detailSchema: object
49
+ mutationSchema: object
50
+ permissionProfile:
51
+ mode: inherit
52
+ resourceScope: object
53
+ actionPolicies:
54
+ - action: create
55
+ permission: create
56
+ - action: update
57
+ permission: update
58
+ - action: list
59
+ permission: list
60
+ - action: detail
61
+ permission: detail
62
+ validationRules:
63
+ - name: uniqueCode
64
+ scope: service
65
+ rule: unique
66
+ message: 编码必须唯一
67
+ errorCodes:
68
+ - code: VALIDATION_FAILED
69
+ message: 输入校验失败
70
+ - code: RECORD_NOT_FOUND
71
+ message: 记录不存在
72
+ - code: DUPLICATE_KEY
73
+ message: 唯一键冲突
74
+ ui:
75
+ list:
76
+ columns:
77
+ - categoryCode
78
+ - categoryName
79
+ - parentName
80
+ - sortOrder
81
+ - status
82
+ - createdAt
83
+ filters:
84
+ - categoryCode
85
+ - categoryName
86
+ - parentName
87
+ - status
88
+ form:
89
+ groups:
90
+ - title: 基本信息
91
+ fields:
92
+ - categoryCode
93
+ - categoryName
94
+ - parentId
95
+ - parentName
96
+ - sortOrder
97
+ - status
98
+ detail:
99
+ sections:
100
+ - basicInfo