@yss123/cage-cli 0.3.1 → 0.4.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 (388) hide show
  1. package/README.md +7 -3
  2. package/dist/analyze.js +3 -0
  3. package/dist/analyze.js.map +1 -1
  4. package/dist/capabilities.js +50 -40
  5. package/dist/capabilities.js.map +1 -1
  6. package/dist/config.d.ts +4 -0
  7. package/dist/config.js.map +1 -1
  8. package/dist/context.js +2 -2
  9. package/dist/context.js.map +1 -1
  10. package/dist/doctor.js +1 -1
  11. package/dist/doctor.js.map +1 -1
  12. package/dist/findings.d.ts +1 -1
  13. package/dist/findings.js +2 -2
  14. package/dist/findings.js.map +1 -1
  15. package/dist/graph-business.d.ts +11 -8
  16. package/dist/graph-business.js +16 -16
  17. package/dist/graph-business.js.map +1 -1
  18. package/dist/graph-relations.js +3 -5
  19. package/dist/graph-relations.js.map +1 -1
  20. package/dist/impact.js +1 -4
  21. package/dist/impact.js.map +1 -1
  22. package/dist/main.js +1 -1
  23. package/dist/main.js.map +1 -1
  24. package/dist/ontology-names.d.ts +17 -0
  25. package/dist/ontology-names.js +42 -0
  26. package/dist/ontology-names.js.map +1 -0
  27. package/dist/project-structure.js +2 -2
  28. package/dist/project-structure.js.map +1 -1
  29. package/dist/sync.d.ts +5 -1
  30. package/dist/sync.js +45 -121
  31. package/dist/sync.js.map +1 -1
  32. package/graph-ui/app.js +3 -2
  33. package/graph-ui/business.js +11 -3
  34. package/graph-ui/graph-business.js +16 -16
  35. package/graph-ui/graph-relations.js +3 -5
  36. package/package.json +6 -6
  37. package/templates/app/.agents/skills/cage-development/SKILL.md +10 -0
  38. package/templates/app/AGENTS.md +42 -122
  39. package/templates/app/CLAUDE.md +6 -0
  40. package/templates/app/README.md +6 -6
  41. package/templates/app/apps/api/package.json +2 -2
  42. package/templates/app/apps/web/package.json +3 -1
  43. package/templates/app/apps/web/src/app/styles/global.css +12 -11
  44. package/templates/app/apps/web/src/main.tsx +18 -7
  45. package/templates/app/apps/web/src/shared/lib/error-message.ts +1 -1
  46. package/templates/app/apps/web/src/shared/ui/approval-member-picker.tsx +1 -1
  47. package/templates/app/cage.config.json +2 -1
  48. package/templates/app/docs/README.md +13 -0
  49. package/templates/app/docs/development/README.md +80 -0
  50. package/templates/app/docs/development/examples/note/note-detail-page.tsx +106 -0
  51. package/templates/app/docs/development/examples/note/note.ts +71 -0
  52. package/templates/app/docs/development/examples/note/notes-page.tsx +87 -0
  53. package/templates/{blank/docs/ai → app/docs/development/examples}/purchase-example.md +10 -10
  54. package/templates/{blank/docs/ai → app/docs/development/getting-started}/architecture.md +9 -9
  55. package/templates/app/docs/development/getting-started/first-feature.md +66 -0
  56. package/templates/{blank/docs/ai → app/docs/development/getting-started}/workflow.md +22 -27
  57. package/templates/app/docs/{ai → development/guides}/approvals.md +19 -9
  58. package/templates/app/docs/development/guides/business-collaboration.md +65 -0
  59. package/templates/{blank/docs/ai → app/docs/development/guides}/files.md +5 -1
  60. package/templates/app/docs/development/guides/frontend-ui.md +30 -0
  61. package/templates/app/docs/{ai → development/guides}/intelligence.md +18 -16
  62. package/templates/app/docs/development/guides/ontology-modeling.md +83 -0
  63. package/templates/app/docs/development/guides/recipes.md +123 -0
  64. package/templates/app/docs/{ai → development/guides}/relations.md +33 -10
  65. package/templates/{blank/docs/ai → app/docs/development/guides}/routing.md +1 -1
  66. package/templates/app/docs/{ai → development/guides}/transfers.md +1 -1
  67. package/templates/{blank/docs/ai → app/docs/development/reference}/commenting.md +8 -5
  68. package/templates/app/docs/{ai → development/reference}/primitives.md +12 -64
  69. package/templates/app/docs/{ai → development/reference}/project-structure.md +2 -2
  70. package/templates/app/docs/development/skills/cage-development/SKILL.md +144 -0
  71. package/templates/{blank/docs/ai → app/docs/development/tools}/diagnostics.md +7 -4
  72. package/templates/{blank/docs/ai → app/docs/development/tools}/ontology-context.md +4 -4
  73. package/templates/app/docs/{ai → development/tools}/troubleshooting.md +10 -4
  74. package/templates/app/docs/errors/CAGE-AI-001.md +1 -1
  75. package/templates/app/docs/errors/CAGE-APPR-001.md +2 -2
  76. package/templates/app/docs/errors/CAGE-APPR-002.md +1 -1
  77. package/templates/app/docs/errors/CAGE-APPR-003.md +1 -1
  78. package/templates/app/docs/errors/CAGE-APPR-004.md +1 -1
  79. package/templates/app/docs/errors/CAGE-APPR-005.md +1 -1
  80. package/templates/app/docs/errors/CAGE-APPR-006.md +1 -1
  81. package/templates/app/docs/errors/CAGE-APPR-007.md +2 -2
  82. package/templates/app/docs/errors/CAGE-APPR-010.md +1 -1
  83. package/templates/app/docs/errors/CAGE-AUDIT-001.md +1 -1
  84. package/templates/app/docs/errors/CAGE-AUTH-001.md +1 -1
  85. package/templates/app/docs/errors/CAGE-BIZ-001.md +1 -1
  86. package/templates/app/docs/errors/CAGE-BIZ-002.md +1 -1
  87. package/templates/app/docs/errors/CAGE-BUDGET-001.md +1 -1
  88. package/templates/app/docs/errors/CAGE-BUDGET-002.md +1 -1
  89. package/templates/app/docs/errors/CAGE-BUDGET-003.md +1 -1
  90. package/templates/app/docs/errors/CAGE-CMD-002.md +1 -1
  91. package/templates/app/docs/errors/CAGE-CMD-003.md +1 -1
  92. package/templates/app/docs/errors/CAGE-CONN-001.md +1 -1
  93. package/templates/app/docs/errors/CAGE-CONN-002.md +1 -1
  94. package/templates/app/docs/errors/CAGE-CONN-003.md +1 -1
  95. package/templates/app/docs/errors/CAGE-CONN-004.md +1 -1
  96. package/templates/app/docs/errors/CAGE-CONN-005.md +1 -1
  97. package/templates/app/docs/errors/CAGE-CONN-006.md +1 -1
  98. package/templates/app/docs/errors/CAGE-CONN-007.md +1 -1
  99. package/templates/app/docs/errors/CAGE-CONN-008.md +1 -1
  100. package/templates/app/docs/errors/CAGE-CONN-009.md +1 -1
  101. package/templates/app/docs/errors/CAGE-CONN-010.md +1 -1
  102. package/templates/app/docs/errors/CAGE-CONN-011.md +1 -1
  103. package/templates/app/docs/errors/CAGE-CONN-012.md +1 -1
  104. package/templates/app/docs/errors/CAGE-CONN-013.md +1 -1
  105. package/templates/app/docs/errors/CAGE-CONN-014.md +1 -1
  106. package/templates/app/docs/errors/CAGE-CONN-015.md +1 -1
  107. package/templates/app/docs/errors/CAGE-CREATE-001.md +2 -2
  108. package/templates/app/docs/errors/CAGE-DECL-001.md +1 -1
  109. package/templates/app/docs/errors/CAGE-DECL-002.md +1 -1
  110. package/templates/app/docs/errors/CAGE-DECL-003.md +1 -1
  111. package/templates/app/docs/errors/CAGE-DECL-004.md +1 -1
  112. package/templates/app/docs/errors/CAGE-DEP-001.md +1 -1
  113. package/templates/app/docs/errors/CAGE-DEP-002.md +1 -1
  114. package/templates/app/docs/errors/CAGE-DEP-003.md +1 -1
  115. package/templates/app/docs/errors/CAGE-DEP-004.md +1 -1
  116. package/templates/app/docs/errors/CAGE-DEP-005.md +1 -1
  117. package/templates/app/docs/errors/CAGE-DIAG-001.md +1 -1
  118. package/templates/app/docs/errors/CAGE-DLQ-001.md +1 -1
  119. package/templates/app/docs/errors/CAGE-ENV-001.md +1 -1
  120. package/templates/app/docs/errors/CAGE-ENV-002.md +1 -1
  121. package/templates/app/docs/errors/CAGE-ENV-003.md +1 -1
  122. package/templates/app/docs/errors/CAGE-EVENT-001.md +1 -1
  123. package/templates/app/docs/errors/CAGE-EVENT-002.md +1 -1
  124. package/templates/app/docs/errors/CAGE-FIELD-001.md +1 -1
  125. package/templates/app/docs/errors/CAGE-FIELD-002.md +1 -1
  126. package/templates/app/docs/errors/CAGE-FIELD-003.md +1 -1
  127. package/templates/app/docs/errors/CAGE-FIELD-004.md +1 -1
  128. package/templates/app/docs/errors/CAGE-FILE-001.md +1 -1
  129. package/templates/app/docs/errors/CAGE-GEN-001.md +1 -1
  130. package/templates/app/docs/errors/CAGE-GEN-002.md +1 -1
  131. package/templates/app/docs/errors/CAGE-GEN-003.md +1 -1
  132. package/templates/app/docs/errors/CAGE-GRANT-001.md +19 -13
  133. package/templates/app/docs/errors/CAGE-GRANT-002.md +3 -3
  134. package/templates/app/docs/errors/CAGE-GRANT-003.md +4 -4
  135. package/templates/app/docs/errors/CAGE-IMPACT-001.md +1 -1
  136. package/templates/app/docs/errors/CAGE-IMPACT-002.md +1 -1
  137. package/templates/app/docs/errors/CAGE-INIT-001.md +1 -1
  138. package/templates/app/docs/errors/CAGE-INIT-002.md +1 -1
  139. package/templates/app/docs/errors/CAGE-INIT-003.md +1 -1
  140. package/templates/app/docs/errors/CAGE-INIT-004.md +1 -1
  141. package/templates/app/docs/errors/CAGE-INIT-005.md +1 -1
  142. package/templates/app/docs/errors/CAGE-JOB-001.md +1 -1
  143. package/templates/app/docs/errors/CAGE-JOB-002.md +1 -1
  144. package/templates/app/docs/errors/CAGE-JOB-003.md +1 -1
  145. package/templates/app/docs/errors/CAGE-LINT-001.md +1 -1
  146. package/templates/app/docs/errors/CAGE-MIG-001.md +1 -1
  147. package/templates/app/docs/errors/CAGE-MIG-002.md +1 -1
  148. package/templates/app/docs/errors/CAGE-MIG-005.md +1 -1
  149. package/templates/app/docs/errors/CAGE-NAME-001.md +1 -1
  150. package/templates/app/docs/errors/CAGE-NAME-002.md +1 -1
  151. package/templates/app/docs/errors/CAGE-NAME-003.md +1 -1
  152. package/templates/app/docs/errors/CAGE-NAME-004.md +1 -1
  153. package/templates/app/docs/errors/CAGE-NAME-005.md +1 -1
  154. package/templates/app/docs/errors/CAGE-NAME-006.md +1 -1
  155. package/templates/app/docs/errors/CAGE-ONTOLOGY-001.md +52 -0
  156. package/templates/app/docs/errors/CAGE-ORG-001.md +1 -1
  157. package/templates/app/docs/errors/CAGE-PAIR-002.md +1 -1
  158. package/templates/app/docs/errors/CAGE-QUERY-001.md +1 -1
  159. package/templates/app/docs/errors/CAGE-QUERY-002.md +1 -1
  160. package/templates/app/docs/errors/CAGE-QUERY-003.md +1 -1
  161. package/templates/app/docs/errors/CAGE-REACT-001.md +1 -1
  162. package/templates/app/docs/errors/CAGE-REACT-002.md +1 -1
  163. package/templates/app/docs/errors/CAGE-REACT-003.md +1 -1
  164. package/templates/app/docs/errors/CAGE-READS-001.md +1 -1
  165. package/templates/app/docs/errors/CAGE-REG-001.md +1 -1
  166. package/templates/app/docs/errors/CAGE-REG-002.md +1 -1
  167. package/templates/app/docs/errors/CAGE-REG-003.md +1 -1
  168. package/templates/app/docs/errors/CAGE-REL-001.md +1 -1
  169. package/templates/app/docs/errors/CAGE-ROUTE-001.md +1 -1
  170. package/templates/app/docs/errors/CAGE-SCOPE-001.md +1 -1
  171. package/templates/app/docs/errors/CAGE-SCOPE-002.md +1 -1
  172. package/templates/app/docs/errors/CAGE-SECRET-001.md +1 -1
  173. package/templates/app/docs/errors/CAGE-SECRET-002.md +1 -1
  174. package/templates/app/docs/errors/CAGE-SENS-001.md +1 -1
  175. package/templates/app/docs/errors/CAGE-SQL-001.md +1 -1
  176. package/templates/app/docs/errors/CAGE-SQL-002.md +1 -1
  177. package/templates/app/docs/errors/CAGE-STATE-001.md +1 -1
  178. package/templates/app/docs/errors/CAGE-STATE-002.md +1 -1
  179. package/templates/app/docs/errors/CAGE-STATE-003.md +2 -2
  180. package/templates/app/docs/errors/CAGE-STATE-004.md +1 -1
  181. package/templates/app/docs/errors/CAGE-STATE-005.md +1 -1
  182. package/templates/app/docs/errors/CAGE-STATE-010.md +1 -1
  183. package/templates/app/docs/errors/CAGE-STATE-011.md +1 -1
  184. package/templates/app/docs/errors/CAGE-STRUCT-001.md +4 -4
  185. package/templates/app/docs/errors/CAGE-STRUCT-002.md +3 -3
  186. package/templates/app/docs/errors/CAGE-SYNC-001.md +4 -4
  187. package/templates/app/docs/errors/CAGE-TEST-001.md +1 -1
  188. package/templates/app/docs/errors/CAGE-TEST-002.md +1 -1
  189. package/templates/app/docs/errors/CAGE-TEST-003.md +1 -1
  190. package/templates/app/docs/errors/CAGE-UNSAFE-001.md +1 -1
  191. package/templates/app/docs/errors/CAGE-UPGRADE-001.md +1 -1
  192. package/templates/app/docs/errors/CAGE-WORKER-001.md +1 -1
  193. package/templates/app/docs/errors/CAGE-WORKER-002.md +1 -1
  194. package/templates/app/docs/errors/CAGE-WORKER-003.md +1 -1
  195. package/templates/app/docs/errors/README.md +8 -2
  196. package/templates/app/docs/errors/runtime.md +2 -2
  197. package/templates/app/package.json +3 -3
  198. package/templates/app/packages/contracts/package.json +1 -1
  199. package/templates/app/packages/contracts/src/aggregates/role/index.ts +2 -2
  200. package/templates/app/packages/contracts/src/aggregates/user/index.ts +3 -3
  201. package/templates/app/packages/domain/package.json +5 -5
  202. package/templates/app/packages/domain/src/modules/purchase/approval-members.ts +1 -1
  203. package/templates/app/packages/domain/src/modules/purchase/approvals.ts +2 -2
  204. package/templates/app/packages/domain/src/modules/purchase/intelligence.test.ts +4 -4
  205. package/templates/app/packages/domain/src/modules/purchase/purchase-order.test.ts +10 -17
  206. package/templates/app/packages/domain/src/modules/purchase/purchase-order.ts +4 -5
  207. package/templates/app/packages/domain/src/workflows/purchase-process.ts +1 -1
  208. package/templates/blank/.agents/skills/cage-development/SKILL.md +10 -0
  209. package/templates/blank/AGENTS.md +42 -122
  210. package/templates/blank/CLAUDE.md +6 -0
  211. package/templates/blank/README.md +3 -3
  212. package/templates/blank/apps/api/package.json +1 -1
  213. package/templates/blank/apps/web/package.json +3 -1
  214. package/templates/blank/apps/web/src/app/styles/global.css +6 -5
  215. package/templates/blank/apps/web/src/main.tsx +18 -7
  216. package/templates/blank/cage.config.json +1 -0
  217. package/templates/blank/docs/README.md +13 -0
  218. package/templates/blank/docs/development/README.md +80 -0
  219. package/templates/blank/docs/development/examples/note/note-detail-page.tsx +106 -0
  220. package/templates/blank/docs/development/examples/note/note.ts +71 -0
  221. package/templates/blank/docs/development/examples/note/notes-page.tsx +87 -0
  222. package/templates/{app/docs/ai → blank/docs/development/examples}/purchase-example.md +10 -10
  223. package/templates/{app/docs/ai → blank/docs/development/getting-started}/architecture.md +9 -9
  224. package/templates/blank/docs/development/getting-started/first-feature.md +66 -0
  225. package/templates/{app/docs/ai → blank/docs/development/getting-started}/workflow.md +22 -27
  226. package/templates/blank/docs/{ai → development/guides}/approvals.md +19 -9
  227. package/templates/blank/docs/development/guides/business-collaboration.md +65 -0
  228. package/templates/{app/docs/ai → blank/docs/development/guides}/files.md +5 -1
  229. package/templates/blank/docs/development/guides/frontend-ui.md +30 -0
  230. package/templates/blank/docs/{ai → development/guides}/intelligence.md +18 -16
  231. package/templates/blank/docs/development/guides/ontology-modeling.md +83 -0
  232. package/templates/blank/docs/development/guides/recipes.md +123 -0
  233. package/templates/blank/docs/{ai → development/guides}/relations.md +33 -10
  234. package/templates/{app/docs/ai → blank/docs/development/guides}/routing.md +1 -1
  235. package/templates/blank/docs/{ai → development/guides}/transfers.md +1 -1
  236. package/templates/{app/docs/ai → blank/docs/development/reference}/commenting.md +8 -5
  237. package/templates/blank/docs/{ai → development/reference}/primitives.md +12 -64
  238. package/templates/blank/docs/{ai → development/reference}/project-structure.md +2 -2
  239. package/templates/blank/docs/development/skills/cage-development/SKILL.md +144 -0
  240. package/templates/{app/docs/ai → blank/docs/development/tools}/diagnostics.md +7 -4
  241. package/templates/{app/docs/ai → blank/docs/development/tools}/ontology-context.md +4 -4
  242. package/templates/blank/docs/{ai → development/tools}/troubleshooting.md +10 -4
  243. package/templates/blank/docs/errors/CAGE-AI-001.md +1 -1
  244. package/templates/blank/docs/errors/CAGE-APPR-001.md +2 -2
  245. package/templates/blank/docs/errors/CAGE-APPR-002.md +1 -1
  246. package/templates/blank/docs/errors/CAGE-APPR-003.md +1 -1
  247. package/templates/blank/docs/errors/CAGE-APPR-004.md +1 -1
  248. package/templates/blank/docs/errors/CAGE-APPR-005.md +1 -1
  249. package/templates/blank/docs/errors/CAGE-APPR-006.md +1 -1
  250. package/templates/blank/docs/errors/CAGE-APPR-007.md +2 -2
  251. package/templates/blank/docs/errors/CAGE-APPR-010.md +1 -1
  252. package/templates/blank/docs/errors/CAGE-AUDIT-001.md +1 -1
  253. package/templates/blank/docs/errors/CAGE-AUTH-001.md +1 -1
  254. package/templates/blank/docs/errors/CAGE-BIZ-001.md +1 -1
  255. package/templates/blank/docs/errors/CAGE-BIZ-002.md +1 -1
  256. package/templates/blank/docs/errors/CAGE-BUDGET-001.md +1 -1
  257. package/templates/blank/docs/errors/CAGE-BUDGET-002.md +1 -1
  258. package/templates/blank/docs/errors/CAGE-BUDGET-003.md +1 -1
  259. package/templates/blank/docs/errors/CAGE-CMD-002.md +1 -1
  260. package/templates/blank/docs/errors/CAGE-CMD-003.md +1 -1
  261. package/templates/blank/docs/errors/CAGE-CONN-001.md +1 -1
  262. package/templates/blank/docs/errors/CAGE-CONN-002.md +1 -1
  263. package/templates/blank/docs/errors/CAGE-CONN-003.md +1 -1
  264. package/templates/blank/docs/errors/CAGE-CONN-004.md +1 -1
  265. package/templates/blank/docs/errors/CAGE-CONN-005.md +1 -1
  266. package/templates/blank/docs/errors/CAGE-CONN-006.md +1 -1
  267. package/templates/blank/docs/errors/CAGE-CONN-007.md +1 -1
  268. package/templates/blank/docs/errors/CAGE-CONN-008.md +1 -1
  269. package/templates/blank/docs/errors/CAGE-CONN-009.md +1 -1
  270. package/templates/blank/docs/errors/CAGE-CONN-010.md +1 -1
  271. package/templates/blank/docs/errors/CAGE-CONN-011.md +1 -1
  272. package/templates/blank/docs/errors/CAGE-CONN-012.md +1 -1
  273. package/templates/blank/docs/errors/CAGE-CONN-013.md +1 -1
  274. package/templates/blank/docs/errors/CAGE-CONN-014.md +1 -1
  275. package/templates/blank/docs/errors/CAGE-CONN-015.md +1 -1
  276. package/templates/blank/docs/errors/CAGE-CREATE-001.md +2 -2
  277. package/templates/blank/docs/errors/CAGE-DECL-001.md +1 -1
  278. package/templates/blank/docs/errors/CAGE-DECL-002.md +1 -1
  279. package/templates/blank/docs/errors/CAGE-DECL-003.md +1 -1
  280. package/templates/blank/docs/errors/CAGE-DECL-004.md +1 -1
  281. package/templates/blank/docs/errors/CAGE-DEP-001.md +1 -1
  282. package/templates/blank/docs/errors/CAGE-DEP-002.md +1 -1
  283. package/templates/blank/docs/errors/CAGE-DEP-003.md +1 -1
  284. package/templates/blank/docs/errors/CAGE-DEP-004.md +1 -1
  285. package/templates/blank/docs/errors/CAGE-DEP-005.md +1 -1
  286. package/templates/blank/docs/errors/CAGE-DIAG-001.md +1 -1
  287. package/templates/blank/docs/errors/CAGE-DLQ-001.md +1 -1
  288. package/templates/blank/docs/errors/CAGE-ENV-001.md +1 -1
  289. package/templates/blank/docs/errors/CAGE-ENV-002.md +1 -1
  290. package/templates/blank/docs/errors/CAGE-ENV-003.md +1 -1
  291. package/templates/blank/docs/errors/CAGE-EVENT-001.md +1 -1
  292. package/templates/blank/docs/errors/CAGE-EVENT-002.md +1 -1
  293. package/templates/blank/docs/errors/CAGE-FIELD-001.md +1 -1
  294. package/templates/blank/docs/errors/CAGE-FIELD-002.md +1 -1
  295. package/templates/blank/docs/errors/CAGE-FIELD-003.md +1 -1
  296. package/templates/blank/docs/errors/CAGE-FIELD-004.md +1 -1
  297. package/templates/blank/docs/errors/CAGE-FILE-001.md +1 -1
  298. package/templates/blank/docs/errors/CAGE-GEN-001.md +1 -1
  299. package/templates/blank/docs/errors/CAGE-GEN-002.md +1 -1
  300. package/templates/blank/docs/errors/CAGE-GEN-003.md +1 -1
  301. package/templates/blank/docs/errors/CAGE-GRANT-001.md +19 -13
  302. package/templates/blank/docs/errors/CAGE-GRANT-002.md +3 -3
  303. package/templates/blank/docs/errors/CAGE-GRANT-003.md +4 -4
  304. package/templates/blank/docs/errors/CAGE-IMPACT-001.md +1 -1
  305. package/templates/blank/docs/errors/CAGE-IMPACT-002.md +1 -1
  306. package/templates/blank/docs/errors/CAGE-INIT-001.md +1 -1
  307. package/templates/blank/docs/errors/CAGE-INIT-002.md +1 -1
  308. package/templates/blank/docs/errors/CAGE-INIT-003.md +1 -1
  309. package/templates/blank/docs/errors/CAGE-INIT-004.md +1 -1
  310. package/templates/blank/docs/errors/CAGE-INIT-005.md +1 -1
  311. package/templates/blank/docs/errors/CAGE-JOB-001.md +1 -1
  312. package/templates/blank/docs/errors/CAGE-JOB-002.md +1 -1
  313. package/templates/blank/docs/errors/CAGE-JOB-003.md +1 -1
  314. package/templates/blank/docs/errors/CAGE-LINT-001.md +1 -1
  315. package/templates/blank/docs/errors/CAGE-MIG-001.md +1 -1
  316. package/templates/blank/docs/errors/CAGE-MIG-002.md +1 -1
  317. package/templates/blank/docs/errors/CAGE-MIG-005.md +1 -1
  318. package/templates/blank/docs/errors/CAGE-NAME-001.md +1 -1
  319. package/templates/blank/docs/errors/CAGE-NAME-002.md +1 -1
  320. package/templates/blank/docs/errors/CAGE-NAME-003.md +1 -1
  321. package/templates/blank/docs/errors/CAGE-NAME-004.md +1 -1
  322. package/templates/blank/docs/errors/CAGE-NAME-005.md +1 -1
  323. package/templates/blank/docs/errors/CAGE-NAME-006.md +1 -1
  324. package/templates/blank/docs/errors/CAGE-ONTOLOGY-001.md +52 -0
  325. package/templates/blank/docs/errors/CAGE-ORG-001.md +1 -1
  326. package/templates/blank/docs/errors/CAGE-PAIR-002.md +1 -1
  327. package/templates/blank/docs/errors/CAGE-QUERY-001.md +1 -1
  328. package/templates/blank/docs/errors/CAGE-QUERY-002.md +1 -1
  329. package/templates/blank/docs/errors/CAGE-QUERY-003.md +1 -1
  330. package/templates/blank/docs/errors/CAGE-REACT-001.md +1 -1
  331. package/templates/blank/docs/errors/CAGE-REACT-002.md +1 -1
  332. package/templates/blank/docs/errors/CAGE-REACT-003.md +1 -1
  333. package/templates/blank/docs/errors/CAGE-READS-001.md +1 -1
  334. package/templates/blank/docs/errors/CAGE-REG-001.md +1 -1
  335. package/templates/blank/docs/errors/CAGE-REG-002.md +1 -1
  336. package/templates/blank/docs/errors/CAGE-REG-003.md +1 -1
  337. package/templates/blank/docs/errors/CAGE-REL-001.md +1 -1
  338. package/templates/blank/docs/errors/CAGE-ROUTE-001.md +1 -1
  339. package/templates/blank/docs/errors/CAGE-SCOPE-001.md +1 -1
  340. package/templates/blank/docs/errors/CAGE-SCOPE-002.md +1 -1
  341. package/templates/blank/docs/errors/CAGE-SECRET-001.md +1 -1
  342. package/templates/blank/docs/errors/CAGE-SECRET-002.md +1 -1
  343. package/templates/blank/docs/errors/CAGE-SENS-001.md +1 -1
  344. package/templates/blank/docs/errors/CAGE-SQL-001.md +1 -1
  345. package/templates/blank/docs/errors/CAGE-SQL-002.md +1 -1
  346. package/templates/blank/docs/errors/CAGE-STATE-001.md +1 -1
  347. package/templates/blank/docs/errors/CAGE-STATE-002.md +1 -1
  348. package/templates/blank/docs/errors/CAGE-STATE-003.md +2 -2
  349. package/templates/blank/docs/errors/CAGE-STATE-004.md +1 -1
  350. package/templates/blank/docs/errors/CAGE-STATE-005.md +1 -1
  351. package/templates/blank/docs/errors/CAGE-STATE-010.md +1 -1
  352. package/templates/blank/docs/errors/CAGE-STATE-011.md +1 -1
  353. package/templates/blank/docs/errors/CAGE-STRUCT-001.md +4 -4
  354. package/templates/blank/docs/errors/CAGE-STRUCT-002.md +3 -3
  355. package/templates/blank/docs/errors/CAGE-SYNC-001.md +4 -4
  356. package/templates/blank/docs/errors/CAGE-TEST-001.md +1 -1
  357. package/templates/blank/docs/errors/CAGE-TEST-002.md +1 -1
  358. package/templates/blank/docs/errors/CAGE-TEST-003.md +1 -1
  359. package/templates/blank/docs/errors/CAGE-UNSAFE-001.md +1 -1
  360. package/templates/blank/docs/errors/CAGE-UPGRADE-001.md +1 -1
  361. package/templates/blank/docs/errors/CAGE-WORKER-001.md +1 -1
  362. package/templates/blank/docs/errors/CAGE-WORKER-002.md +1 -1
  363. package/templates/blank/docs/errors/CAGE-WORKER-003.md +1 -1
  364. package/templates/blank/docs/errors/README.md +8 -2
  365. package/templates/blank/docs/errors/runtime.md +2 -2
  366. package/templates/blank/docs/examples/purchase-admin/README.md +1 -1
  367. package/templates/blank/docs/examples/purchase-admin/apps/web/src/app/styles/global.css +12 -11
  368. package/templates/blank/docs/examples/purchase-admin/apps/web/src/main.tsx +18 -7
  369. package/templates/blank/docs/examples/purchase-admin/apps/web/src/shared/lib/error-message.ts +1 -1
  370. package/templates/blank/docs/examples/purchase-admin/apps/web/src/shared/ui/approval-member-picker.tsx +1 -1
  371. package/templates/blank/docs/examples/purchase-admin/cage.config.json +2 -1
  372. package/templates/blank/docs/examples/purchase-admin/packages/contracts/src/aggregates/role/index.ts +2 -2
  373. package/templates/blank/docs/examples/purchase-admin/packages/contracts/src/aggregates/user/index.ts +3 -3
  374. package/templates/blank/docs/examples/purchase-admin/packages/domain/src/modules/purchase/approval-members.ts +1 -1
  375. package/templates/blank/docs/examples/purchase-admin/packages/domain/src/modules/purchase/approvals.ts +2 -2
  376. package/templates/blank/docs/examples/purchase-admin/packages/domain/src/modules/purchase/intelligence.test.ts +4 -4
  377. package/templates/blank/docs/examples/purchase-admin/packages/domain/src/modules/purchase/purchase-order.test.ts +10 -17
  378. package/templates/blank/docs/examples/purchase-admin/packages/domain/src/modules/purchase/purchase-order.ts +4 -5
  379. package/templates/blank/docs/examples/purchase-admin/packages/domain/src/workflows/purchase-process.ts +1 -1
  380. package/templates/blank/package.json +3 -3
  381. package/templates/blank/packages/contracts/package.json +1 -1
  382. package/templates/blank/packages/contracts/src/aggregates/role/index.ts +2 -2
  383. package/templates/blank/packages/contracts/src/aggregates/user/index.ts +3 -3
  384. package/templates/blank/packages/domain/package.json +5 -5
  385. package/templates/app/docs/ai/README.md +0 -103
  386. package/templates/app/docs/ai/recipes.md +0 -89
  387. package/templates/blank/docs/ai/README.md +0 -103
  388. package/templates/blank/docs/ai/recipes.md +0 -89
@@ -1,6 +1,6 @@
1
1
  # CAGE-CREATE-001:项目创建参数或模板资源有误
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -29,7 +29,7 @@ cage create . 覆盖当前已有业务项目
29
29
 
30
30
  ## 修复后验证
31
31
 
32
- 向一个新目录创建,检查 AGENTS.md、业务源码、docs/ai 和 docs/errors,然后按 README 安装/构建。
32
+ 向一个新目录创建,检查 AGENTS.md、业务源码、docs/development 和 docs/errors,然后按 README 安装/构建。
33
33
 
34
34
  ## 框架内的检查位置
35
35
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-DECL-001:声明不在可抽取的顶层常量
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-DECL-002:声明没有从 domain 入口导出
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-DECL-003:声明不是 export const
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-DECL-004:跨文件导出名冲突
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-DEP-001:领域声明直接依赖 IO
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-DEP-002:适配器绕过命令写库
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-DEP-003:前端依赖服务端实现
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-DEP-004:声明或 handler 直接发请求/动态导入
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-DEP-005:domain 反向依赖生成物
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-DIAG-001:运行诊断输入或连接失败
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-DLQ-001:死信不存在或已经处理
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-ENV-001:缺少数据库连接配置
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-ENV-002:运行配置不满足安全边界
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-ENV-003:服务启动不能隐式初始化组织
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-EVENT-001:事件载荷不满足声明
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-EVENT-002:事件变更不向后兼容
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-FIELD-001:敏感字段种类不存在
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-FIELD-002:引用目标为空
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-FIELD-003:字段不是字段原语
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-FIELD-004:覆盖系统保留列
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-FILE-001:文件字段或上传配置无效
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-GEN-001:契约等生成结果过期
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-GEN-002:声明结构没有对应迁移
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-GEN-003:输入校验需要服务端执行
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
- # CAGE-GRANT-001:授予超出自己的能力或额度
1
+ # CAGE-GRANT-001:授予超出自己的能力或参数
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -8,16 +8,16 @@
8
8
 
9
9
  阶段:组织命令。
10
10
 
11
- 管理员授予自己没有的能力/更高参数,或分配含越权能力的角色。
11
+ 管理员授予自己没有的能力/更高数值参数、分配含越权能力的角色,或尝试维护受保护的超级管理员角色与账号。
12
12
 
13
13
  ## 修复步骤
14
14
 
15
- 1. 由具备足够能力和参数的管理员操作;降低授予范围到自身权限内,不禁用防提权约束。
15
+ 1. 由具备足够能力和参数的管理员操作;超级管理员角色和账号由超级管理员维护。目标用户的角色不可见时需先取得角色读取能力和全部范围,不禁用防提权约束。
16
16
 
17
17
  ## 正例
18
18
 
19
19
  ```text
20
- 有 approve=100000 额度的管理员授予不超过自身的额度
20
+ 自己有采购审批能力时,给普通角色授予该能力
21
21
  ```
22
22
 
23
23
  ## 反例
@@ -34,16 +34,22 @@
34
34
 
35
35
  以下路径相对框架源码仓库,不是要求业务项目创建这些文件。当前项目先修业务声明、配置或授权;明确属于框架缺口时反馈错误码和脱敏上下文。
36
36
 
37
- - `packages/admin/src/domain/constraints.ts:39`
38
- - `packages/admin/src/domain/constraints.ts:42`
39
- - `packages/admin/src/domain/constraints.ts:78`
37
+ - `packages/admin/src/domain/constraints.ts:38`
38
+ - `packages/admin/src/domain/constraints.ts:40`
39
+ - `packages/admin/src/domain/constraints.ts:55`
40
+ - `packages/admin/src/domain/constraints.ts:61`
41
+ - `packages/admin/src/domain/constraints.ts:67`
42
+ - `packages/admin/src/domain/constraints.ts:69`
43
+ - `packages/admin/src/domain/constraints.ts:85`
44
+ - `packages/admin/src/domain/constraints.ts:88`
45
+ - `packages/admin/src/domain/constraints.ts:124`
40
46
 
41
47
  实现片段(位置随框架版本更新):
42
48
 
43
49
  ```ts
44
- const mine = ctx.capabilities.get(input.capability);
45
- if (!mine) return violation('[CAGE-GRANT-001] 不能授出自己没有的能力点');
46
- for (const [k, v] of Object.entries(input.params ?? {})) {
47
- if (typeof v === 'number' && typeof mine[k] === 'number' && v > (mine[k] as number)) {
48
- return violation(`[CAGE-GRANT-001] 参数 ${k}=${v} 超过了你自己的 ${mine[k]}`);
50
+ if (!role.capabilities?.some((entry: { capability: string }) => entry.capability === '*') || ctx.actor?.kind === 'system') return ok();
51
+ if (!ctx.capabilities.has('*')) return violation('[CAGE-GRANT-001] 只有超级管理员可以维护超级管理员角色');
52
+ if (meta.capability === 'Role.archive' || (meta.capability === 'Role.revokeCapability' && input.capability === '*'))
53
+ return violation('[CAGE-GRANT-001] 不能停用超级管理员角色或移除全部能力标记');
54
+ return ok();
49
55
  ```
@@ -1,6 +1,6 @@
1
1
  # CAGE-GRANT-002:授予超出自己的数据范围
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -34,8 +34,8 @@
34
34
 
35
35
  以下路径相对框架源码仓库,不是要求业务项目创建这些文件。当前项目先修业务声明、配置或授权;明确属于框架缺口时反馈错误码和脱敏上下文。
36
36
 
37
- - `packages/admin/src/domain/constraints.ts:59`
38
- - `packages/admin/src/domain/constraints.ts:82`
37
+ - `packages/admin/src/domain/constraints.ts:105`
38
+ - `packages/admin/src/domain/constraints.ts:128`
39
39
 
40
40
  实现片段(位置随框架版本更新):
41
41
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-GRANT-003:能力不在代码目录中
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -8,11 +8,11 @@
8
8
 
9
9
  阶段:组织命令。
10
10
 
11
- 授权请求引用了注册表没有声明的能力点。
11
+ 授权请求引用了注册表没有声明的能力点,或普通授权操作使用了初始化专用的全部能力标记。
12
12
 
13
13
  ## 修复步骤
14
14
 
15
- 1. 先在 domain 声明并导出相应命令/聚合,再查看能力目录;不要在管理页面凭空发明能力名称。
15
+ 1. 先在 domain 声明并导出相应命令/聚合,再查看能力目录;不要在管理页面凭空发明能力名称。全部能力标记仅由首次初始化写入。
16
16
 
17
17
  ## 正例
18
18
 
@@ -35,7 +35,7 @@ PurchaseOrder.anything // 没有对应声明
35
35
  以下路径相对框架源码仓库,不是要求业务项目创建这些文件。当前项目先修业务声明、配置或授权;明确属于框架缺口时反馈错误码和脱敏上下文。
36
36
 
37
37
  - `packages/admin/src/domain/constraints.ts:21`
38
- - `packages/admin/src/domain/constraints.ts:26`
38
+ - `packages/admin/src/domain/constraints.ts:27`
39
39
 
40
40
  实现片段(位置随框架版本更新):
41
41
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-IMPACT-001:影响分析没有可用基线
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-IMPACT-002:命名本体快照无效
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-INIT-001:管理员 URL 没有数据库名
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-INIT-002:集群已有账号但缺少原凭证
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-INIT-003:三种连接身份或目标不一致
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-INIT-004:账号已创建但 .env 替换失败
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-INIT-005:显式组织初始化或凭据交付失败
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-JOB-001:定时表达式不合法
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-JOB-002:任务调用了未声明的命令
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-JOB-003:任务读取了未声明的聚合
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-LINT-001:lint 语法或规则错误
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-MIG-001:迁移事务执行失败
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-MIG-002:安全层重建失败
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-MIG-005:已执行迁移内容被修改
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-NAME-001:聚合名必须大驼峰
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-NAME-002:字段名必须小驼峰
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-NAME-003:事件名必须大驼峰
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-NAME-004:命令名必须小驼峰
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-NAME-005:查询名必须小驼峰
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-NAME-006:任务名必须小驼峰
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -0,0 +1,52 @@
1
+ # CAGE-ONTOLOGY-001:本体节点缺少结构化业务名称
2
+
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
+
5
+ > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
+
7
+ ## 何时出现
8
+
9
+ 阶段:check / gen / verify / 图谱与上下文诊断。
10
+
11
+ 当前项目可定位的聚合、字段、状态、命令、事件、查询或任务没有非空业务名称,图谱只能回退机器标识。默认警告,graph.naming 为 required 时作为门禁错误。
12
+
13
+ ## 修复步骤
14
+
15
+ 1. 按 reason 的完整节点 key 定位声明。字段和状态的位置指向所属聚合,继续在其中查找成员;无本地源码位置的依赖节点不在本检查范围。
16
+ 2. 对象、命令、查询和任务填写 description;事件在第三个参数填写 description;字段用 .describe(...) 或关系选项 description;每个状态都在 states 的 labels 中命名。旧声明可用 graph.labels 的完整 key 覆盖显示。
17
+ 3. 普通注释与前端 statusLabel 不会自动进入本体。名称用用户的业务用语,不为翻译改表名、状态值或能力点;详见 docs/development/guides/ontology-modeling.md。
18
+ 4. 补齐后重跑 check 并查看 graph/context;完整性不验证语言、名称质量或任意业务关系,仍按已明确规则验证外键方向、基数、状态迁移及真实触发链。
19
+
20
+ ## 正例
21
+
22
+ ```text
23
+ states('active', 'archived', { terminal: ['archived'], labels: { active: '使用中', archived: '已归档' } })
24
+ ```
25
+
26
+ ## 反例
27
+
28
+ ```text
29
+ states('active', 'archived', { terminal: ['archived'] }) // 只在页面或注释中翻译状态,没有结构化名称
30
+ ```
31
+
32
+ ## 修复后验证
33
+
34
+ 重跑 cage check,再在 graph/context 中按业务用语核对名称;对象关系与运行行为仍需独立业务用例验证。
35
+
36
+ ## 框架内的检查位置
37
+
38
+ 以下路径相对框架源码仓库,不是要求业务项目创建这些文件。当前项目先修业务声明、配置或授权;明确属于框架缺口时反馈错误码和脱敏上下文。
39
+
40
+ - `packages/cli/src/ontology-names.ts:27`
41
+ - `packages/cli/src/ontology-names.ts:42`
42
+ - `packages/cli/src/sync.ts:42`
43
+
44
+ 实现片段(位置随框架版本更新):
45
+
46
+ ```ts
47
+ * @param presentation 与图谱同一次抽取产生的名称,配置短标题优先于声明文案。
48
+ * @returns 每个缺名节点一条 CAGE-ONTOLOGY-001;不推断语言、不从注释或前端反推业务名称。
49
+ */
50
+ export function checkOntologyNames(cfg: CageConfig, graph: Ontology, presentation: GraphPresentation): Finding[] {
51
+ const aggregates = new Map(graph.nodes.filter(node => node.kind === 'aggregate').map(node => [node.id, node]));
52
+ ```
@@ -1,6 +1,6 @@
1
1
  # CAGE-ORG-001:业务入口遗漏组织模型
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-PAIR-002:离开持有资源状态却没有释放
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -1,6 +1,6 @@
1
1
  # CAGE-QUERY-001:查询必须选择一种实现
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6