@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-APPR-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-APPR-006:审批步骤配置无效
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-APPR-007:找不到审批人
2
2
 
3
- [返回错误码册](README.md) · [业务排错](../ai/troubleshooting.md)
3
+ [返回错误码册](README.md) · [业务排错](../development/tools/troubleshooting.md)
4
4
 
5
5
  > 本页由框架生成。正反例为局部声明或操作说明,完整写法见业务开发指南及本项目 domain。
6
6
 
@@ -15,7 +15,7 @@ worker 启动或推进审批步骤时选人器没有找到人,或字段选人/
15
15
  1. 先看本项目 approvals.ts:deptLeader 读取单据部门的负责人;role 使用角色 code;user 使用实际用户 UUID。
16
16
  2. 在 /admin 设置单据所属部门的负责人,或创建对应 code 的角色并分配实际用户。给用户经理角色,并不等于设置了部门负责人。
17
17
  3. field 使用提交时保存的 routable 人员字段;检查 UUID 对应账号是否全部在当前租户且 active。不能删掉不合格人员后默认为审批通过;字段快照错误需按业务撤回/重提修正。
18
- 4. 再核对审批人的结论能力、数据范围、ceiling 额度和职责分离。选中审批人不等于允许完成审批。
18
+ 4. 再核对审批人的结论能力、数据范围和职责分离。选中审批人不等于允许完成审批。
19
19
  5. 若 OrderSubmitted 已入死信,修复后在 /admin 按 outboxId 重放,确认待办生成;原提交已成功时不重复提交或 SQL 改回草稿。
20
20
 
21
21
  ## 正例
@@ -1,6 +1,6 @@
1
1
  # CAGE-APPR-010:流程专用命令没有调用者
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-AUDIT-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-AUTH-001:OIDC 发现文档获取失败
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-BIZ-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-BIZ-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-BUDGET-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-BUDGET-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-BUDGET-003:新增未经基线认可的 unsafe
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-CMD-002:已有记录命令缺少 id
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-CMD-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-CONN-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-CONN-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-CONN-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-CONN-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-CONN-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-CONN-006:回调命令未允许 external
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-CONN-007:当前环境没有连接器地址
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-CONN-008:外部请求发生网络错误或超时
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-CONN-009:外部服务返回非成功状态
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-CONN-010:外部响应不符合 schema
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-CONN-011:出站永久失败进入死信
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-CONN-012:外部专用命令没有声明调用者
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-CONN-013:出站幂等键无效或请求冲突
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-CONN-014:不可重试外部写入结果未知
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-CONN-015:连接器超时或限流参数无效
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-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