@stackonward/cli 0.0.1 → 1.0.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 (638) hide show
  1. package/dist/index.js +4588 -205
  2. package/dist/index.js.map +1 -1
  3. package/dist/resources/apple/.claude/docs/architecture-template.md +54 -0
  4. package/dist/resources/apple/.claude/docs/architecture.md +52 -0
  5. package/dist/resources/apple/.claude/docs/index.md +13 -0
  6. package/dist/resources/apple/.claude/docs/security-lifecycle.md +57 -0
  7. package/dist/resources/apple/.claude/docs/stack.md +93 -0
  8. package/dist/resources/apple/.claude/docs/verification.md +63 -0
  9. package/dist/resources/apple/AGENTS.md +397 -0
  10. package/dist/resources/apple/CLAUDE.md +397 -0
  11. package/dist/resources/apple/Gemfile +2 -0
  12. package/dist/resources/apple/Gemfile.lock +365 -0
  13. package/dist/resources/apple/_gitignore +14 -0
  14. package/dist/resources/apple/fastlane/Fastfile +123 -0
  15. package/dist/resources/components/nuxt/site-source/app/app.vue +42 -0
  16. package/dist/resources/components/nuxt/site-source/app/assets/css/site-shell.css +1035 -0
  17. package/dist/resources/components/nuxt/site-source/app/assets/icons/brand/.gitkeep +0 -0
  18. package/dist/resources/components/nuxt/site-source/app/assets/icons/common/.gitkeep +0 -0
  19. package/dist/resources/components/nuxt/site-source/app/components/site/ApplicationHeader.vue +35 -0
  20. package/dist/resources/components/nuxt/site-source/app/components/site/ApplicationShell.vue +56 -0
  21. package/dist/resources/components/nuxt/site-source/app/components/site/ApplicationSidebar.vue +40 -0
  22. package/dist/resources/components/nuxt/site-source/app/components/site/BackToTop.vue +42 -0
  23. package/dist/resources/components/nuxt/site-source/app/components/site/ContentArticlePage.vue +40 -0
  24. package/dist/resources/components/nuxt/site-source/app/components/site/ContentListPage.vue +30 -0
  25. package/dist/resources/components/nuxt/site-source/app/components/site/CookieConsent.vue +18 -0
  26. package/dist/resources/components/nuxt/site-source/app/components/site/MarketingFooter.vue +52 -0
  27. package/dist/resources/components/nuxt/site-source/app/components/site/MarketingHeader.vue +106 -0
  28. package/dist/resources/components/nuxt/site-source/app/components/site/MarketingShell.vue +35 -0
  29. package/dist/resources/components/nuxt/site-source/app/components/site/SiteBrand.vue +10 -0
  30. package/dist/resources/components/nuxt/site-source/app/components/site/StaticPage.vue +21 -0
  31. package/dist/resources/components/nuxt/site-source/app/components/site/ToastViewport.vue +25 -0
  32. package/dist/resources/components/nuxt/site-source/app/components/ui/BaseButton.vue +86 -0
  33. package/dist/resources/components/nuxt/site-source/app/components/ui/BaseGradientBorder.vue +59 -0
  34. package/dist/resources/components/nuxt/site-source/app/components/ui/BaseModal.vue +131 -0
  35. package/dist/resources/components/nuxt/site-source/app/components/ui/BasePopover.vue +150 -0
  36. package/dist/resources/components/nuxt/site-source/app/components/ui/BaseText.vue +138 -0
  37. package/dist/resources/components/nuxt/site-source/app/components/ui/CheckoutStatus.vue +112 -0
  38. package/dist/resources/components/nuxt/site-source/app/components/ui/CheckoutSummary.vue +172 -0
  39. package/dist/resources/components/nuxt/site-source/app/components/ui/GoogleSignInButton.vue +113 -0
  40. package/dist/resources/components/nuxt/site-source/app/components/ui/InfiniteScroll.vue +123 -0
  41. package/dist/resources/components/nuxt/site-source/app/components/ui/YoutubeEmbed.vue +126 -0
  42. package/dist/resources/components/nuxt/site-source/app/composables/useAnalytics.ts +24 -0
  43. package/dist/resources/components/nuxt/site-source/app/composables/useCheckout.ts +121 -0
  44. package/dist/resources/components/nuxt/site-source/app/composables/useConsent.ts +31 -0
  45. package/dist/resources/components/nuxt/site-source/app/composables/useGoogleIdentity.ts +163 -0
  46. package/dist/resources/components/nuxt/site-source/app/composables/useNavigation.ts +11 -0
  47. package/dist/resources/components/nuxt/site-source/app/composables/useSeo.ts +33 -0
  48. package/dist/resources/components/nuxt/site-source/app/composables/useSiteShell.ts +58 -0
  49. package/dist/resources/components/nuxt/site-source/app/composables/useToasts.ts +48 -0
  50. package/dist/resources/components/nuxt/site-source/app/layouts/app.vue +5 -0
  51. package/dist/resources/components/nuxt/site-source/app/layouts/default.vue +5 -0
  52. package/dist/resources/components/nuxt/site-source/app/plugins/analytics.client.ts +121 -0
  53. package/dist/resources/components/nuxt/site-source/app/plugins/google-identity.client.ts +24 -0
  54. package/dist/resources/components/nuxt/site-source/app/theme/accordion.ts +9 -0
  55. package/dist/resources/components/nuxt/site-source/app/theme/breadcrumb.ts +8 -0
  56. package/dist/resources/components/nuxt/site-source/app/theme/button.ts +92 -0
  57. package/dist/resources/components/nuxt/site-source/app/theme/carousel.ts +11 -0
  58. package/dist/resources/components/nuxt/site-source/app/theme/checkbox.ts +12 -0
  59. package/dist/resources/components/nuxt/site-source/app/theme/index.ts +30 -0
  60. package/dist/resources/components/nuxt/site-source/app/theme/input.ts +47 -0
  61. package/dist/resources/components/nuxt/site-source/app/theme/modal.ts +9 -0
  62. package/dist/resources/components/nuxt/site-source/app/theme/pagination.ts +6 -0
  63. package/dist/resources/components/nuxt/site-source/app/theme/select.ts +23 -0
  64. package/dist/resources/components/nuxt/site-source/app/theme/stepper.ts +10 -0
  65. package/dist/resources/components/nuxt/site-source/app/theme/toast.ts +8 -0
  66. package/dist/resources/components/nuxt/site-source/app/theme/tooltip.ts +6 -0
  67. package/dist/resources/components/nuxt/site-source/app/types/site-shell.ts +85 -0
  68. package/dist/resources/components/react/ui/Button.tsx +73 -0
  69. package/dist/resources/components/react/ui/Input.tsx +44 -0
  70. package/dist/resources/components/registry.json +355 -0
  71. package/dist/resources/components/vue/feedback/Toast.vue +120 -0
  72. package/dist/resources/components/vue/feedback/useToast.ts +70 -0
  73. package/dist/resources/components/vue/media/FileUpload.vue +229 -0
  74. package/dist/resources/components/vue/media/VideoPlayer.vue +157 -0
  75. package/dist/resources/components/vue/ui/AppImage.vue +147 -0
  76. package/dist/resources/components/vue/ui/BottomSheet.vue +217 -0
  77. package/dist/resources/components/vue/ui/Button.vue +154 -0
  78. package/dist/resources/components/vue/ui/Card.vue +111 -0
  79. package/dist/resources/components/vue/ui/Input.vue +113 -0
  80. package/dist/resources/components/vue/ui/Modal.vue +193 -0
  81. package/dist/resources/components/vue/ui/ScrollArea.vue +163 -0
  82. package/dist/resources/components/vue/ui/Tooltip.vue +115 -0
  83. package/dist/resources/registry.json +158 -0
  84. package/dist/resources/snippets/node/cache.ts +116 -0
  85. package/dist/resources/snippets/node/date.ts +126 -0
  86. package/dist/resources/snippets/node/logger.ts +104 -0
  87. package/dist/resources/snippets/node/validation.ts +132 -0
  88. package/dist/resources/snippets/react/useDebounce.ts +90 -0
  89. package/dist/resources/snippets/registry.json +65 -0
  90. package/dist/resources/snippets/vue/useAsync.ts +96 -0
  91. package/dist/resources/snippets/vue/usePagination.ts +102 -0
  92. package/dist/resources/templates/base/.claude/docs/architecture-template.md +459 -0
  93. package/dist/resources/templates/base/.claude/docs/architecture.md +137 -0
  94. package/dist/resources/templates/base/.claude/docs/index.md +42 -0
  95. package/dist/resources/templates/base/.claude/docs/security-lifecycle.md +129 -0
  96. package/dist/resources/templates/base/.claude/docs/verification.md +121 -0
  97. package/dist/resources/templates/base/AGENTS.md +415 -0
  98. package/dist/resources/templates/base/CLAUDE.md +415 -0
  99. package/dist/resources/templates/go-backend/.claude/docs/api-design.md +486 -0
  100. package/dist/resources/templates/go-backend/.claude/docs/architecture-template.md +449 -0
  101. package/dist/resources/templates/go-backend/.claude/docs/check-list.md +155 -0
  102. package/dist/resources/templates/go-backend/.claude/docs/database.md +369 -0
  103. package/dist/resources/templates/go-backend/.claude/docs/e2e-standards.md +161 -0
  104. package/dist/resources/templates/go-backend/.claude/docs/error-handling.md +558 -0
  105. package/dist/resources/templates/go-backend/.claude/docs/event-runtime-boundary.md +124 -0
  106. package/dist/resources/templates/go-backend/.claude/docs/identifier-contract.md +195 -0
  107. package/dist/resources/templates/go-backend/.claude/docs/index.md +22 -0
  108. package/dist/resources/templates/go-backend/.claude/docs/logging.md +314 -0
  109. package/dist/resources/templates/go-backend/.claude/docs/mediagen-provider-onboarding-sop.md +917 -0
  110. package/dist/resources/templates/go-backend/.claude/docs/mediagen-provider-quick-reference.md +195 -0
  111. package/dist/resources/templates/go-backend/.claude/docs/module-standards.md +309 -0
  112. package/dist/resources/templates/go-backend/.claude/docs/openapi-contract.md +141 -0
  113. package/dist/resources/templates/go-backend/.claude/docs/payment-gateway-onboarding.md +283 -0
  114. package/dist/resources/templates/go-backend/.claude/docs/platform-boundary.md +191 -0
  115. package/dist/resources/templates/go-backend/.claude/docs/quality-gates.md +112 -0
  116. package/dist/resources/templates/go-backend/.dockerignore +6 -0
  117. package/dist/resources/templates/go-backend/.env.example +13 -0
  118. package/dist/resources/templates/go-backend/.gitattributes +2 -0
  119. package/dist/resources/templates/go-backend/AGENTS.md +1139 -0
  120. package/dist/resources/templates/go-backend/CLAUDE.md +1139 -0
  121. package/dist/resources/templates/go-backend/Dockerfile +14 -0
  122. package/dist/resources/templates/go-backend/Makefile +71 -0
  123. package/dist/resources/templates/go-backend/README.md +66 -0
  124. package/dist/resources/templates/go-backend/_gitignore +10 -0
  125. package/dist/resources/templates/go-backend/api/openapi/README.md +29 -0
  126. package/dist/resources/templates/go-backend/api/openapi/dist/artifact-manifest.json +19 -0
  127. package/dist/resources/templates/go-backend/api/openapi/dist/conformance-matrix.json +276 -0
  128. package/dist/resources/templates/go-backend/api/openapi/document.go +30 -0
  129. package/dist/resources/templates/go-backend/api/openapi/package.json +28 -0
  130. package/dist/resources/templates/go-backend/api/openapi/pnpm-lock.yaml +3052 -0
  131. package/dist/resources/templates/go-backend/api/openapi/redocly-source.yaml +18 -0
  132. package/dist/resources/templates/go-backend/api/openapi/redocly.yaml +8 -0
  133. package/dist/resources/templates/go-backend/api/openapi/sdk-generators.json +16 -0
  134. package/dist/resources/templates/go-backend/api/openapi/service-registry.json +39 -0
  135. package/dist/resources/templates/go-backend/api/openapi/services/product-api/conformance/runtime.arazzo.yaml +65 -0
  136. package/dist/resources/templates/go-backend/api/openapi/services/product-api/dist/internal.openapi.json +327 -0
  137. package/dist/resources/templates/go-backend/api/openapi/services/product-api/dist/runtime-contract.json +56 -0
  138. package/dist/resources/templates/go-backend/api/openapi/services/product-api/openapi.yaml +222 -0
  139. package/dist/resources/templates/go-backend/api/openapi/services/worker/conformance/runtime.arazzo.yaml +65 -0
  140. package/dist/resources/templates/go-backend/api/openapi/services/worker/dist/internal.openapi.json +327 -0
  141. package/dist/resources/templates/go-backend/api/openapi/services/worker/dist/runtime-contract.json +56 -0
  142. package/dist/resources/templates/go-backend/api/openapi/services/worker/openapi.yaml +222 -0
  143. package/dist/resources/templates/go-backend/api/openapi/tooling/breaking.mjs +416 -0
  144. package/dist/resources/templates/go-backend/api/openapi/tooling/build.mjs +103 -0
  145. package/dist/resources/templates/go-backend/api/openapi/tooling/conformance_coverage.mjs +111 -0
  146. package/dist/resources/templates/go-backend/api/openapi/tooling/contract_compiler.mjs +62 -0
  147. package/dist/resources/templates/go-backend/api/openapi/tooling/contract_policy.mjs +208 -0
  148. package/dist/resources/templates/go-backend/api/openapi/tooling/delegated_contract.mjs +302 -0
  149. package/dist/resources/templates/go-backend/api/openapi/tooling/deterministic_archive.mjs +69 -0
  150. package/dist/resources/templates/go-backend/api/openapi/tooling/documentation_example_privacy.mjs +93 -0
  151. package/dist/resources/templates/go-backend/api/openapi/tooling/documentation_projection.mjs +498 -0
  152. package/dist/resources/templates/go-backend/api/openapi/tooling/documentation_quality.mjs +346 -0
  153. package/dist/resources/templates/go-backend/api/openapi/tooling/git_artifact_history.mjs +188 -0
  154. package/dist/resources/templates/go-backend/api/openapi/tooling/manifest.mjs +170 -0
  155. package/dist/resources/templates/go-backend/api/openapi/tooling/overlay.mjs +98 -0
  156. package/dist/resources/templates/go-backend/api/openapi/tooling/project.mjs +549 -0
  157. package/dist/resources/templates/go-backend/api/openapi/tooling/route_contract.mjs +156 -0
  158. package/dist/resources/templates/go-backend/api/openapi/tooling/runtime_conformance.mjs +193 -0
  159. package/dist/resources/templates/go-backend/api/openapi/tooling/scalar_asset_localization.mjs +164 -0
  160. package/dist/resources/templates/go-backend/api/openapi/tooling/sdk_generator.mjs +229 -0
  161. package/dist/resources/templates/go-backend/api/openapi/tooling/semantic_version.mjs +64 -0
  162. package/dist/resources/templates/go-backend/api/openapi/tooling/service_contract_inputs.mjs +16 -0
  163. package/dist/resources/templates/go-backend/api/openapi/tooling/test/breaking.test.mjs +365 -0
  164. package/dist/resources/templates/go-backend/api/openapi/tooling/test/build.test.mjs +42 -0
  165. package/dist/resources/templates/go-backend/api/openapi/tooling/test/conformance_coverage.test.mjs +88 -0
  166. package/dist/resources/templates/go-backend/api/openapi/tooling/test/contract_policy.test.mjs +257 -0
  167. package/dist/resources/templates/go-backend/api/openapi/tooling/test/delegated_contract.test.mjs +205 -0
  168. package/dist/resources/templates/go-backend/api/openapi/tooling/test/documentation_example_privacy.test.mjs +51 -0
  169. package/dist/resources/templates/go-backend/api/openapi/tooling/test/documentation_projection.test.mjs +368 -0
  170. package/dist/resources/templates/go-backend/api/openapi/tooling/test/documentation_quality.test.mjs +151 -0
  171. package/dist/resources/templates/go-backend/api/openapi/tooling/test/git_artifact_history.test.mjs +60 -0
  172. package/dist/resources/templates/go-backend/api/openapi/tooling/test/head_policy.test.mjs +8 -0
  173. package/dist/resources/templates/go-backend/api/openapi/tooling/test/overlay.test.mjs +44 -0
  174. package/dist/resources/templates/go-backend/api/openapi/tooling/test/projection.test.mjs +270 -0
  175. package/dist/resources/templates/go-backend/api/openapi/tooling/test/redocly_documentation_rules.test.mjs +146 -0
  176. package/dist/resources/templates/go-backend/api/openapi/tooling/test/release_manifest.test.mjs +76 -0
  177. package/dist/resources/templates/go-backend/api/openapi/tooling/test/route_contract.test.mjs +119 -0
  178. package/dist/resources/templates/go-backend/api/openapi/tooling/test/runtime_conformance.test.mjs +75 -0
  179. package/dist/resources/templates/go-backend/api/openapi/tooling/test/scalar_asset_localization.test.mjs +50 -0
  180. package/dist/resources/templates/go-backend/api/openapi/tooling/test/sdk_generator.test.mjs +31 -0
  181. package/dist/resources/templates/go-backend/api/openapi/tooling/test/semantic_version.test.mjs +60 -0
  182. package/dist/resources/templates/go-backend/api/openapi/tooling/test/service_contract_inputs.test.mjs +27 -0
  183. package/dist/resources/templates/go-backend/cmd/internal/runtime/resources.go +125 -0
  184. package/dist/resources/templates/go-backend/cmd/internal/runtime/runtime.go +102 -0
  185. package/dist/resources/templates/go-backend/cmd/internal/runtime/runtime_test.go +70 -0
  186. package/dist/resources/templates/go-backend/cmd/product-api/lifecycle_test.go +58 -0
  187. package/dist/resources/templates/go-backend/cmd/product-api/main.go +32 -0
  188. package/dist/resources/templates/go-backend/cmd/product-api/wire.go +13 -0
  189. package/dist/resources/templates/go-backend/cmd/product-api/wire_gen.go +94 -0
  190. package/dist/resources/templates/go-backend/cmd/worker/main.go +47 -0
  191. package/dist/resources/templates/go-backend/cmd/worker/wire.go +14 -0
  192. package/dist/resources/templates/go-backend/cmd/worker/wire_gen.go +111 -0
  193. package/dist/resources/templates/go-backend/configs/config.yaml +37 -0
  194. package/dist/resources/templates/go-backend/deployments/compose.yaml +71 -0
  195. package/dist/resources/templates/go-backend/docs/openapi-provenance.json +489 -0
  196. package/dist/resources/templates/go-backend/docs/runtime-provenance.json +175 -0
  197. package/dist/resources/templates/go-backend/docs/source-provenance.json +3568 -0
  198. package/dist/resources/templates/go-backend/docs/standards-provenance.json +1624 -0
  199. package/dist/resources/templates/go-backend/go.mod +256 -0
  200. package/dist/resources/templates/go-backend/go.sum +805 -0
  201. package/dist/resources/templates/go-backend/internal/common/canonicaljson/canonical.go +370 -0
  202. package/dist/resources/templates/go-backend/internal/common/canonicaljson/canonical_test.go +223 -0
  203. package/dist/resources/templates/go-backend/internal/common/checkoutbff/contracts.go +125 -0
  204. package/dist/resources/templates/go-backend/internal/common/checkoutbff/platform_client.go +212 -0
  205. package/dist/resources/templates/go-backend/internal/common/checkoutbff/platform_client_test.go +319 -0
  206. package/dist/resources/templates/go-backend/internal/common/contentaccess/contentaccess.go +50 -0
  207. package/dist/resources/templates/go-backend/internal/common/contracts/contact.go +85 -0
  208. package/dist/resources/templates/go-backend/internal/common/ctxutil/identity.go +20 -0
  209. package/dist/resources/templates/go-backend/internal/common/ctxutil/product.go +53 -0
  210. package/dist/resources/templates/go-backend/internal/common/enumdomain/payment.go +12 -0
  211. package/dist/resources/templates/go-backend/internal/common/enums/dto_admin.go +9 -0
  212. package/dist/resources/templates/go-backend/internal/common/enums/enum.go +1247 -0
  213. package/dist/resources/templates/go-backend/internal/common/enums/handler_admin.go +66 -0
  214. package/dist/resources/templates/go-backend/internal/common/enums/module.go +46 -0
  215. package/dist/resources/templates/go-backend/internal/common/enums/provider.go +10 -0
  216. package/dist/resources/templates/go-backend/internal/common/enums/register.go +11 -0
  217. package/dist/resources/templates/go-backend/internal/common/enums/register_audit.go +274 -0
  218. package/dist/resources/templates/go-backend/internal/common/enums/register_command_replay.go +12 -0
  219. package/dist/resources/templates/go-backend/internal/common/enums/register_config.go +27 -0
  220. package/dist/resources/templates/go-backend/internal/common/enums/register_locale.go +37 -0
  221. package/dist/resources/templates/go-backend/internal/common/enums/register_ops.go +14 -0
  222. package/dist/resources/templates/go-backend/internal/common/enums/register_outbox.go +15 -0
  223. package/dist/resources/templates/go-backend/internal/common/enums/register_rule_expression.go +63 -0
  224. package/dist/resources/templates/go-backend/internal/common/enums/registry.go +77 -0
  225. package/dist/resources/templates/go-backend/internal/common/httporigin/origin.go +62 -0
  226. package/dist/resources/templates/go-backend/internal/common/httporigin/origin_test.go +38 -0
  227. package/dist/resources/templates/go-backend/internal/common/iamcredential/plaintext.go +35 -0
  228. package/dist/resources/templates/go-backend/internal/common/iamcredential/plaintext_test.go +29 -0
  229. package/dist/resources/templates/go-backend/internal/common/iamscope/scope.go +212 -0
  230. package/dist/resources/templates/go-backend/internal/common/iamscope/scope_binding.go +26 -0
  231. package/dist/resources/templates/go-backend/internal/common/iamscope/scope_filter.go +173 -0
  232. package/dist/resources/templates/go-backend/internal/common/iamscope/scope_filter_test.go +279 -0
  233. package/dist/resources/templates/go-backend/internal/common/internalapi/authorization_details.go +10 -0
  234. package/dist/resources/templates/go-backend/internal/common/internalapi/route_permission_policies.go +660 -0
  235. package/dist/resources/templates/go-backend/internal/common/internalapi/route_permission_policies_test.go +331 -0
  236. package/dist/resources/templates/go-backend/internal/common/internalservice/audience_token_source.go +166 -0
  237. package/dist/resources/templates/go-backend/internal/common/internalservice/bootstrap_token_exchanger.go +183 -0
  238. package/dist/resources/templates/go-backend/internal/common/internalservice/bound_service_token_signer.go +52 -0
  239. package/dist/resources/templates/go-backend/internal/common/internalservice/delegated_access_token_exchanger.go +189 -0
  240. package/dist/resources/templates/go-backend/internal/common/internalservice/delegated_access_token_exchanger_test.go +159 -0
  241. package/dist/resources/templates/go-backend/internal/common/internalservice/product_scoped_service_token_signer.go +92 -0
  242. package/dist/resources/templates/go-backend/internal/common/internalservice/provider.go +25 -0
  243. package/dist/resources/templates/go-backend/internal/common/internalservice/request_signer.go +86 -0
  244. package/dist/resources/templates/go-backend/internal/common/internalservice/resolver.go +69 -0
  245. package/dist/resources/templates/go-backend/internal/common/internalservice/resolver_test.go +42 -0
  246. package/dist/resources/templates/go-backend/internal/common/internalservice/route_scope.go +95 -0
  247. package/dist/resources/templates/go-backend/internal/common/internalservice/route_scope_test.go +78 -0
  248. package/dist/resources/templates/go-backend/internal/common/internalservice/service_identity_test.go +387 -0
  249. package/dist/resources/templates/go-backend/internal/common/jsonschema/compiler.go +100 -0
  250. package/dist/resources/templates/go-backend/internal/common/jsonschema/compiler_test.go +41 -0
  251. package/dist/resources/templates/go-backend/internal/common/jwksapi/handler.go +83 -0
  252. package/dist/resources/templates/go-backend/internal/common/jwksapi/handler_test.go +104 -0
  253. package/dist/resources/templates/go-backend/internal/common/locale/locale.go +145 -0
  254. package/dist/resources/templates/go-backend/internal/common/locale/locale_test.go +75 -0
  255. package/dist/resources/templates/go-backend/internal/common/mediaref/mediaref.go +54 -0
  256. package/dist/resources/templates/go-backend/internal/common/mediaref/mediaref_test.go +77 -0
  257. package/dist/resources/templates/go-backend/internal/common/middleware/apikey_auth.go +320 -0
  258. package/dist/resources/templates/go-backend/internal/common/middleware/apikey_throttle.go +158 -0
  259. package/dist/resources/templates/go-backend/internal/common/middleware/auth.go +40 -0
  260. package/dist/resources/templates/go-backend/internal/common/middleware/auth_test.go +50 -0
  261. package/dist/resources/templates/go-backend/internal/common/middleware/client_context.go +86 -0
  262. package/dist/resources/templates/go-backend/internal/common/middleware/cors.go +68 -0
  263. package/dist/resources/templates/go-backend/internal/common/middleware/event_context.go +18 -0
  264. package/dist/resources/templates/go-backend/internal/common/middleware/gateway_identity.go +279 -0
  265. package/dist/resources/templates/go-backend/internal/common/middleware/helpers.go +159 -0
  266. package/dist/resources/templates/go-backend/internal/common/middleware/iam_delegated_route_permission.go +171 -0
  267. package/dist/resources/templates/go-backend/internal/common/middleware/iam_delegated_token_auth.go +151 -0
  268. package/dist/resources/templates/go-backend/internal/common/middleware/iam_delegated_token_auth_test.go +99 -0
  269. package/dist/resources/templates/go-backend/internal/common/middleware/iam_service_identity.go +138 -0
  270. package/dist/resources/templates/go-backend/internal/common/middleware/iam_service_token_auth.go +74 -0
  271. package/dist/resources/templates/go-backend/internal/common/middleware/idempotent.go +273 -0
  272. package/dist/resources/templates/go-backend/internal/common/middleware/idempotent_test.go +83 -0
  273. package/dist/resources/templates/go-backend/internal/common/middleware/internal_route_permission.go +45 -0
  274. package/dist/resources/templates/go-backend/internal/common/middleware/internal_route_permission_test.go +186 -0
  275. package/dist/resources/templates/go-backend/internal/common/middleware/logging.go +191 -0
  276. package/dist/resources/templates/go-backend/internal/common/middleware/metrics.go +45 -0
  277. package/dist/resources/templates/go-backend/internal/common/middleware/middleware_test.go +1516 -0
  278. package/dist/resources/templates/go-backend/internal/common/middleware/principal_context.go +160 -0
  279. package/dist/resources/templates/go-backend/internal/common/middleware/principal_context_test.go +355 -0
  280. package/dist/resources/templates/go-backend/internal/common/middleware/product_context.go +100 -0
  281. package/dist/resources/templates/go-backend/internal/common/middleware/recovery.go +40 -0
  282. package/dist/resources/templates/go-backend/internal/common/middleware/referral_attribution.go +178 -0
  283. package/dist/resources/templates/go-backend/internal/common/middleware/requestid.go +48 -0
  284. package/dist/resources/templates/go-backend/internal/common/middleware/resource_permission.go +790 -0
  285. package/dist/resources/templates/go-backend/internal/common/middleware/resource_permission_test.go +440 -0
  286. package/dist/resources/templates/go-backend/internal/common/middleware/service_credential_auth.go +67 -0
  287. package/dist/resources/templates/go-backend/internal/common/middleware/tenant.go +148 -0
  288. package/dist/resources/templates/go-backend/internal/common/middleware/throttle.go +310 -0
  289. package/dist/resources/templates/go-backend/internal/common/middleware/trusted_client_ip.go +23 -0
  290. package/dist/resources/templates/go-backend/internal/common/middleware/trusted_client_ip_test.go +60 -0
  291. package/dist/resources/templates/go-backend/internal/common/money/currency.go +25 -0
  292. package/dist/resources/templates/go-backend/internal/common/money/errors.go +23 -0
  293. package/dist/resources/templates/go-backend/internal/common/money/format.go +123 -0
  294. package/dist/resources/templates/go-backend/internal/common/money/format_test.go +204 -0
  295. package/dist/resources/templates/go-backend/internal/common/money/gateway.go +144 -0
  296. package/dist/resources/templates/go-backend/internal/common/money/gateway_test.go +165 -0
  297. package/dist/resources/templates/go-backend/internal/common/money/rounding.go +56 -0
  298. package/dist/resources/templates/go-backend/internal/common/money/rounding_test.go +51 -0
  299. package/dist/resources/templates/go-backend/internal/common/principal/context.go +56 -0
  300. package/dist/resources/templates/go-backend/internal/common/principal/principal.go +49 -0
  301. package/dist/resources/templates/go-backend/internal/common/productcode/code.go +24 -0
  302. package/dist/resources/templates/go-backend/internal/common/productcode/code_test.go +35 -0
  303. package/dist/resources/templates/go-backend/internal/common/providerconfig/schema.go +577 -0
  304. package/dist/resources/templates/go-backend/internal/common/providerconfig/schema_test.go +47 -0
  305. package/dist/resources/templates/go-backend/internal/common/requestprivacy/request.go +246 -0
  306. package/dist/resources/templates/go-backend/internal/common/requestprivacy/request_test.go +170 -0
  307. package/dist/resources/templates/go-backend/internal/common/response/pagination.go +60 -0
  308. package/dist/resources/templates/go-backend/internal/common/response/response.go +110 -0
  309. package/dist/resources/templates/go-backend/internal/common/response/response_test.go +463 -0
  310. package/dist/resources/templates/go-backend/internal/common/ruleexpression/ast.go +141 -0
  311. package/dist/resources/templates/go-backend/internal/common/ruleexpression/ast_test.go +81 -0
  312. package/dist/resources/templates/go-backend/internal/common/ruleexpression/canonical.go +184 -0
  313. package/dist/resources/templates/go-backend/internal/common/ruleexpression/canonical_test.go +319 -0
  314. package/dist/resources/templates/go-backend/internal/common/ruleexpression/decoder.go +555 -0
  315. package/dist/resources/templates/go-backend/internal/common/ruleexpression/decoder_test.go +260 -0
  316. package/dist/resources/templates/go-backend/internal/common/ruleexpression/errors.go +55 -0
  317. package/dist/resources/templates/go-backend/internal/common/ruleexpression/evaluator.go +96 -0
  318. package/dist/resources/templates/go-backend/internal/common/ruleexpression/evaluator_test.go +220 -0
  319. package/dist/resources/templates/go-backend/internal/common/ruleexpression/fuzz_test.go +116 -0
  320. package/dist/resources/templates/go-backend/internal/common/ruleexpression/limits.go +331 -0
  321. package/dist/resources/templates/go-backend/internal/common/ruleexpression/schema.go +412 -0
  322. package/dist/resources/templates/go-backend/internal/common/ruleexpression/schema_test.go +164 -0
  323. package/dist/resources/templates/go-backend/internal/common/runtimeinput/runtime_input.go +627 -0
  324. package/dist/resources/templates/go-backend/internal/common/runtimeinput/runtime_input_test.go +245 -0
  325. package/dist/resources/templates/go-backend/internal/common/semver/errors.go +6 -0
  326. package/dist/resources/templates/go-backend/internal/common/semver/semver.go +125 -0
  327. package/dist/resources/templates/go-backend/internal/common/semver/semver_test.go +205 -0
  328. package/dist/resources/templates/go-backend/internal/common/serviceidentity/audience.go +48 -0
  329. package/dist/resources/templates/go-backend/internal/common/serviceidentity/audience_test.go +35 -0
  330. package/dist/resources/templates/go-backend/internal/common/serviceidentity/resource_identifier.go +33 -0
  331. package/dist/resources/templates/go-backend/internal/common/serviceidentity/resource_identifier_test.go +32 -0
  332. package/dist/resources/templates/go-backend/internal/common/tradeno/generator.go +99 -0
  333. package/dist/resources/templates/go-backend/internal/common/tradeno/generator_test.go +396 -0
  334. package/dist/resources/templates/go-backend/internal/common/tradeno/prefix.go +247 -0
  335. package/dist/resources/templates/go-backend/internal/common/types/asset_url.go +11 -0
  336. package/dist/resources/templates/go-backend/internal/common/types/billing.go +89 -0
  337. package/dist/resources/templates/go-backend/internal/common/types/billing_test.go +77 -0
  338. package/dist/resources/templates/go-backend/internal/common/types/country.go +74 -0
  339. package/dist/resources/templates/go-backend/internal/common/types/country_test.go +28 -0
  340. package/dist/resources/templates/go-backend/internal/common/types/currency.go +60 -0
  341. package/dist/resources/templates/go-backend/internal/common/types/identifiers.go +41 -0
  342. package/dist/resources/templates/go-backend/internal/common/types/operator.go +28 -0
  343. package/dist/resources/templates/go-backend/internal/common/types/subscription_entitlement.go +24 -0
  344. package/dist/resources/templates/go-backend/internal/common/types/subscription_entitlement_test.go +35 -0
  345. package/dist/resources/templates/go-backend/internal/common/types/tier.go +72 -0
  346. package/dist/resources/templates/go-backend/internal/common/types/types.go +411 -0
  347. package/dist/resources/templates/go-backend/internal/common/types/types_test.go +295 -0
  348. package/dist/resources/templates/go-backend/internal/common/utils/constants.go +100 -0
  349. package/dist/resources/templates/go-backend/internal/common/utils/crypto.go +158 -0
  350. package/dist/resources/templates/go-backend/internal/common/utils/crypto_test.go +345 -0
  351. package/dist/resources/templates/go-backend/internal/common/utils/duration.go +25 -0
  352. package/dist/resources/templates/go-backend/internal/common/utils/helpers.go +18 -0
  353. package/dist/resources/templates/go-backend/internal/common/utils/json.go +62 -0
  354. package/dist/resources/templates/go-backend/internal/common/utils/json_test.go +76 -0
  355. package/dist/resources/templates/go-backend/internal/common/utils/pagination.go +51 -0
  356. package/dist/resources/templates/go-backend/internal/common/utils/pagination_test.go +45 -0
  357. package/dist/resources/templates/go-backend/internal/common/utils/pointer.go +107 -0
  358. package/dist/resources/templates/go-backend/internal/common/utils/pointer_test.go +15 -0
  359. package/dist/resources/templates/go-backend/internal/common/utils/slice.go +24 -0
  360. package/dist/resources/templates/go-backend/internal/common/utils/snowflake.go +110 -0
  361. package/dist/resources/templates/go-backend/internal/common/utils/snowflake_test.go +316 -0
  362. package/dist/resources/templates/go-backend/internal/common/utils/string.go +16 -0
  363. package/dist/resources/templates/go-backend/internal/common/utils/timefmt.go +42 -0
  364. package/dist/resources/templates/go-backend/internal/common/validator/validator.go +136 -0
  365. package/dist/resources/templates/go-backend/internal/common/validator/validator_test.go +240 -0
  366. package/dist/resources/templates/go-backend/internal/common/youtubeapi/client.go +224 -0
  367. package/dist/resources/templates/go-backend/internal/core/apicontract/document.go +269 -0
  368. package/dist/resources/templates/go-backend/internal/core/apicontract/document_test.go +104 -0
  369. package/dist/resources/templates/go-backend/internal/core/apicontract/route_validator.go +78 -0
  370. package/dist/resources/templates/go-backend/internal/core/apicontract/route_validator_test.go +108 -0
  371. package/dist/resources/templates/go-backend/internal/core/apidocs/assets/scalar-api-reference.js +2385 -0
  372. package/dist/resources/templates/go-backend/internal/core/apidocs/assets/scalar-api-reference.metadata.json +10 -0
  373. package/dist/resources/templates/go-backend/internal/core/apidocs/route.go +107 -0
  374. package/dist/resources/templates/go-backend/internal/core/apidocs/route_test.go +200 -0
  375. package/dist/resources/templates/go-backend/internal/core/apidocs/scalar.go +117 -0
  376. package/dist/resources/templates/go-backend/internal/core/apidocs/scalar_test.go +99 -0
  377. package/dist/resources/templates/go-backend/internal/core/audit/access_log_policy.go +91 -0
  378. package/dist/resources/templates/go-backend/internal/core/audit/access_log_policy_test.go +51 -0
  379. package/dist/resources/templates/go-backend/internal/core/audit/actor_resolver.go +36 -0
  380. package/dist/resources/templates/go-backend/internal/core/audit/constants.go +30 -0
  381. package/dist/resources/templates/go-backend/internal/core/audit/context.go +119 -0
  382. package/dist/resources/templates/go-backend/internal/core/audit/context_test.go +310 -0
  383. package/dist/resources/templates/go-backend/internal/core/audit/dto.go +468 -0
  384. package/dist/resources/templates/go-backend/internal/core/audit/dto_admin.go +172 -0
  385. package/dist/resources/templates/go-backend/internal/core/audit/enum.go +460 -0
  386. package/dist/resources/templates/go-backend/internal/core/audit/enum_test.go +314 -0
  387. package/dist/resources/templates/go-backend/internal/core/audit/errors.go +9 -0
  388. package/dist/resources/templates/go-backend/internal/core/audit/handler.go +568 -0
  389. package/dist/resources/templates/go-backend/internal/core/audit/listener.go +319 -0
  390. package/dist/resources/templates/go-backend/internal/core/audit/listener_test.go +98 -0
  391. package/dist/resources/templates/go-backend/internal/core/audit/middleware.go +669 -0
  392. package/dist/resources/templates/go-backend/internal/core/audit/middleware_test.go +268 -0
  393. package/dist/resources/templates/go-backend/internal/core/audit/model.go +306 -0
  394. package/dist/resources/templates/go-backend/internal/core/audit/partition_job.go +316 -0
  395. package/dist/resources/templates/go-backend/internal/core/audit/ports.go +9 -0
  396. package/dist/resources/templates/go-backend/internal/core/audit/provider.go +30 -0
  397. package/dist/resources/templates/go-backend/internal/core/audit/repository.go +1007 -0
  398. package/dist/resources/templates/go-backend/internal/core/audit/repository_test.go +934 -0
  399. package/dist/resources/templates/go-backend/internal/core/audit/router.go +85 -0
  400. package/dist/resources/templates/go-backend/internal/core/audit/service.go +770 -0
  401. package/dist/resources/templates/go-backend/internal/core/audit/service_test.go +331 -0
  402. package/dist/resources/templates/go-backend/internal/core/audit/vo_admin.go +475 -0
  403. package/dist/resources/templates/go-backend/internal/core/cache/config.go +30 -0
  404. package/dist/resources/templates/go-backend/internal/core/cache/key.go +41 -0
  405. package/dist/resources/templates/go-backend/internal/core/cache/key_test.go +62 -0
  406. package/dist/resources/templates/go-backend/internal/core/cache/l1.go +153 -0
  407. package/dist/resources/templates/go-backend/internal/core/cache/l1_test.go +212 -0
  408. package/dist/resources/templates/go-backend/internal/core/cache/manager.go +278 -0
  409. package/dist/resources/templates/go-backend/internal/core/cache/manager_provider.go +24 -0
  410. package/dist/resources/templates/go-backend/internal/core/cache/metrics.go +126 -0
  411. package/dist/resources/templates/go-backend/internal/core/cache/namespace.go +46 -0
  412. package/dist/resources/templates/go-backend/internal/core/cache/namespace_test.go +90 -0
  413. package/dist/resources/templates/go-backend/internal/core/cache/options.go +39 -0
  414. package/dist/resources/templates/go-backend/internal/core/cache/options_test.go +96 -0
  415. package/dist/resources/templates/go-backend/internal/core/cache/redis.go +311 -0
  416. package/dist/resources/templates/go-backend/internal/core/cache/redis_test.go +51 -0
  417. package/dist/resources/templates/go-backend/internal/core/cache/serializer.go +31 -0
  418. package/dist/resources/templates/go-backend/internal/core/cache/serializer_test.go +139 -0
  419. package/dist/resources/templates/go-backend/internal/core/cache/singleflight.go +53 -0
  420. package/dist/resources/templates/go-backend/internal/core/cache/singleflight_test.go +211 -0
  421. package/dist/resources/templates/go-backend/internal/core/cache/warming.go +86 -0
  422. package/dist/resources/templates/go-backend/internal/core/clock/clock.go +66 -0
  423. package/dist/resources/templates/go-backend/internal/core/clock/clock_test.go +26 -0
  424. package/dist/resources/templates/go-backend/internal/core/clock/runtime_clock.go +283 -0
  425. package/dist/resources/templates/go-backend/internal/core/clock/runtime_clock_test.go +98 -0
  426. package/dist/resources/templates/go-backend/internal/core/commandreplay/errors.go +6 -0
  427. package/dist/resources/templates/go-backend/internal/core/commandreplay/model.go +90 -0
  428. package/dist/resources/templates/go-backend/internal/core/commandreplay/model_test.go +79 -0
  429. package/dist/resources/templates/go-backend/internal/core/commandreplay/namespace.go +7 -0
  430. package/dist/resources/templates/go-backend/internal/core/commandreplay/persistence.go +269 -0
  431. package/dist/resources/templates/go-backend/internal/core/commandreplay/persistence_test.go +185 -0
  432. package/dist/resources/templates/go-backend/internal/core/commandreplay/provider.go +9 -0
  433. package/dist/resources/templates/go-backend/internal/core/commandreplay/repository.go +22 -0
  434. package/dist/resources/templates/go-backend/internal/core/commandreplay/service.go +853 -0
  435. package/dist/resources/templates/go-backend/internal/core/commandreplay/service_persistence_test.go +432 -0
  436. package/dist/resources/templates/go-backend/internal/core/commandreplay/service_test.go +891 -0
  437. package/dist/resources/templates/go-backend/internal/core/commandreplay/types.go +121 -0
  438. package/dist/resources/templates/go-backend/internal/core/config/config.go +2069 -0
  439. package/dist/resources/templates/go-backend/internal/core/config/config_test.go +1122 -0
  440. package/dist/resources/templates/go-backend/internal/core/config/contract/contract_test.go +388 -0
  441. package/dist/resources/templates/go-backend/internal/core/config/contract/docs.go +198 -0
  442. package/dist/resources/templates/go-backend/internal/core/config/contract/verify.go +424 -0
  443. package/dist/resources/templates/go-backend/internal/core/config/enum.go +46 -0
  444. package/dist/resources/templates/go-backend/internal/core/config/metadata.go +717 -0
  445. package/dist/resources/templates/go-backend/internal/core/config/metadata_test.go +228 -0
  446. package/dist/resources/templates/go-backend/internal/core/config/product_admin_config_test.go +210 -0
  447. package/dist/resources/templates/go-backend/internal/core/crypto/aes_gcm.go +111 -0
  448. package/dist/resources/templates/go-backend/internal/core/crypto/aes_gcm_test.go +364 -0
  449. package/dist/resources/templates/go-backend/internal/core/crypto/encryptor.go +12 -0
  450. package/dist/resources/templates/go-backend/internal/core/crypto/envelope_encryptor.go +134 -0
  451. package/dist/resources/templates/go-backend/internal/core/crypto/envelope_encryptor_test.go +118 -0
  452. package/dist/resources/templates/go-backend/internal/core/crypto/pem.go +112 -0
  453. package/dist/resources/templates/go-backend/internal/core/crypto/pem_test.go +44 -0
  454. package/dist/resources/templates/go-backend/internal/core/crypto/provider.go +130 -0
  455. package/dist/resources/templates/go-backend/internal/core/crypto/provider_test.go +92 -0
  456. package/dist/resources/templates/go-backend/internal/core/database/base_model.go +24 -0
  457. package/dist/resources/templates/go-backend/internal/core/database/clickhouse.go +121 -0
  458. package/dist/resources/templates/go-backend/internal/core/database/database.go +112 -0
  459. package/dist/resources/templates/go-backend/internal/core/database/database_logger_test.go +95 -0
  460. package/dist/resources/templates/go-backend/internal/core/database/errors.go +25 -0
  461. package/dist/resources/templates/go-backend/internal/core/database/metrics_plugin.go +105 -0
  462. package/dist/resources/templates/go-backend/internal/core/database/pool_collector.go +71 -0
  463. package/dist/resources/templates/go-backend/internal/core/database/read_replica.go +520 -0
  464. package/dist/resources/templates/go-backend/internal/core/database/transaction.go +170 -0
  465. package/dist/resources/templates/go-backend/internal/core/database/transaction_test.go +282 -0
  466. package/dist/resources/templates/go-backend/internal/core/distlock/lock.go +353 -0
  467. package/dist/resources/templates/go-backend/internal/core/distlock/lock_test.go +106 -0
  468. package/dist/resources/templates/go-backend/internal/core/errors/handler.go +189 -0
  469. package/dist/resources/templates/go-backend/internal/core/errors/handler_test.go +515 -0
  470. package/dist/resources/templates/go-backend/internal/core/eventbus/eventbus.go +667 -0
  471. package/dist/resources/templates/go-backend/internal/core/eventbus/eventbus_test.go +792 -0
  472. package/dist/resources/templates/go-backend/internal/core/eventstream/noop.go +22 -0
  473. package/dist/resources/templates/go-backend/internal/core/eventstream/provider.go +20 -0
  474. package/dist/resources/templates/go-backend/internal/core/eventstream/publisher.go +38 -0
  475. package/dist/resources/templates/go-backend/internal/core/eventstream/redis.go +109 -0
  476. package/dist/resources/templates/go-backend/internal/core/eventstream/routing.go +104 -0
  477. package/dist/resources/templates/go-backend/internal/core/eventstream/routing_test.go +71 -0
  478. package/dist/resources/templates/go-backend/internal/core/geoip/model.go +19 -0
  479. package/dist/resources/templates/go-backend/internal/core/geoip/service.go +88 -0
  480. package/dist/resources/templates/go-backend/internal/core/health/health.go +333 -0
  481. package/dist/resources/templates/go-backend/internal/core/health/health_test.go +27 -0
  482. package/dist/resources/templates/go-backend/internal/core/httpclient/client.go +772 -0
  483. package/dist/resources/templates/go-backend/internal/core/httpclient/client_test.go +287 -0
  484. package/dist/resources/templates/go-backend/internal/core/httpclient/download.go +578 -0
  485. package/dist/resources/templates/go-backend/internal/core/httpclient/download_test.go +374 -0
  486. package/dist/resources/templates/go-backend/internal/core/jwtkeyring/jwk.go +38 -0
  487. package/dist/resources/templates/go-backend/internal/core/jwtkeyring/keyring.go +144 -0
  488. package/dist/resources/templates/go-backend/internal/core/jwtkeyring/keyring_test.go +128 -0
  489. package/dist/resources/templates/go-backend/internal/core/jwtkeyring/registry.go +60 -0
  490. package/dist/resources/templates/go-backend/internal/core/logger/logger.go +53 -0
  491. package/dist/resources/templates/go-backend/internal/core/logger/logger_test.go +194 -0
  492. package/dist/resources/templates/go-backend/internal/core/observability/metrics.go +358 -0
  493. package/dist/resources/templates/go-backend/internal/core/observability/sentry.go +445 -0
  494. package/dist/resources/templates/go-backend/internal/core/observability/sentry_privacy_test.go +175 -0
  495. package/dist/resources/templates/go-backend/internal/core/observability/tracing.go +187 -0
  496. package/dist/resources/templates/go-backend/internal/core/outbox/model.go +314 -0
  497. package/dist/resources/templates/go-backend/internal/core/outbox/model_test.go +77 -0
  498. package/dist/resources/templates/go-backend/internal/core/outbox/persistence.go +51 -0
  499. package/dist/resources/templates/go-backend/internal/core/outbox/provider.go +23 -0
  500. package/dist/resources/templates/go-backend/internal/core/outbox/relay.go +1138 -0
  501. package/dist/resources/templates/go-backend/internal/core/outbox/relay_postgres_test.go +257 -0
  502. package/dist/resources/templates/go-backend/internal/core/outbox/relay_test.go +690 -0
  503. package/dist/resources/templates/go-backend/internal/core/outbox/rescheduler.go +164 -0
  504. package/dist/resources/templates/go-backend/internal/core/outbox/rescheduler_test.go +209 -0
  505. package/dist/resources/templates/go-backend/internal/core/outbox/writer.go +249 -0
  506. package/dist/resources/templates/go-backend/internal/core/outbox/writer_postgres_test.go +170 -0
  507. package/dist/resources/templates/go-backend/internal/core/outbox/writer_test.go +123 -0
  508. package/dist/resources/templates/go-backend/internal/core/provider.go +198 -0
  509. package/dist/resources/templates/go-backend/internal/core/queue/metrics_middleware.go +38 -0
  510. package/dist/resources/templates/go-backend/internal/core/queue/metrics_middleware_test.go +12 -0
  511. package/dist/resources/templates/go-backend/internal/core/queue/queue.go +288 -0
  512. package/dist/resources/templates/go-backend/internal/core/queue/queue_test.go +159 -0
  513. package/dist/resources/templates/go-backend/internal/core/resilience/bulkhead.go +514 -0
  514. package/dist/resources/templates/go-backend/internal/core/resilience/bulkhead_test.go +984 -0
  515. package/dist/resources/templates/go-backend/internal/core/resilience/circuitbreaker.go +358 -0
  516. package/dist/resources/templates/go-backend/internal/core/resilience/circuitbreaker_test.go +788 -0
  517. package/dist/resources/templates/go-backend/internal/core/resilience/retry.go +318 -0
  518. package/dist/resources/templates/go-backend/internal/core/resilience/retry_test.go +735 -0
  519. package/dist/resources/templates/go-backend/internal/core/schedule/recorder.go +305 -0
  520. package/dist/resources/templates/go-backend/internal/core/schedule/run_context.go +124 -0
  521. package/dist/resources/templates/go-backend/internal/core/schedule/run_context_test.go +85 -0
  522. package/dist/resources/templates/go-backend/internal/core/schedule/scheduler.go +1589 -0
  523. package/dist/resources/templates/go-backend/internal/core/schedule/scheduler_control_test.go +808 -0
  524. package/dist/resources/templates/go-backend/internal/core/storage/oss_provider.go +398 -0
  525. package/dist/resources/templates/go-backend/internal/core/storage/oss_provider_test.go +89 -0
  526. package/dist/resources/templates/go-backend/internal/core/storage/path.go +110 -0
  527. package/dist/resources/templates/go-backend/internal/core/storage/path_test.go +301 -0
  528. package/dist/resources/templates/go-backend/internal/core/storage/s3_provider.go +489 -0
  529. package/dist/resources/templates/go-backend/internal/core/storage/s3_provider_test.go +60 -0
  530. package/dist/resources/templates/go-backend/internal/core/storage/storage.go +268 -0
  531. package/dist/resources/templates/go-backend/internal/core/storage/validation.go +225 -0
  532. package/dist/resources/templates/go-backend/internal/core/storage/validation_test.go +495 -0
  533. package/dist/resources/templates/go-backend/internal/core/temporal/logger.go +38 -0
  534. package/dist/resources/templates/go-backend/internal/core/temporal/provider.go +126 -0
  535. package/dist/resources/templates/go-backend/internal/core/temporal/provider_test.go +67 -0
  536. package/dist/resources/templates/go-backend/internal/core/websocket/client.go +282 -0
  537. package/dist/resources/templates/go-backend/internal/core/websocket/client_test.go +81 -0
  538. package/dist/resources/templates/go-backend/internal/core/websocket/config.go +58 -0
  539. package/dist/resources/templates/go-backend/internal/core/websocket/handler.go +53 -0
  540. package/dist/resources/templates/go-backend/internal/core/websocket/hub.go +269 -0
  541. package/dist/resources/templates/go-backend/internal/core/websocket/message.go +273 -0
  542. package/dist/resources/templates/go-backend/internal/core/websocket/notifier.go +92 -0
  543. package/dist/resources/templates/go-backend/internal/core/websocket/provider.go +33 -0
  544. package/dist/resources/templates/go-backend/internal/integrations/onex/iam/action.go +77 -0
  545. package/dist/resources/templates/go-backend/internal/integrations/onex/iam/action_test.go +238 -0
  546. package/dist/resources/templates/go-backend/internal/integrations/onex/iam/condition.go +107 -0
  547. package/dist/resources/templates/go-backend/internal/integrations/onex/iam/decision.go +256 -0
  548. package/dist/resources/templates/go-backend/internal/integrations/onex/iam/enum.go +643 -0
  549. package/dist/resources/templates/go-backend/internal/integrations/onex/iam/errors.go +102 -0
  550. package/dist/resources/templates/go-backend/internal/integrations/onex/iam/principal_record.go +21 -0
  551. package/dist/resources/templates/go-backend/internal/integrations/onex/iam/product_context.go +486 -0
  552. package/dist/resources/templates/go-backend/internal/integrations/onex/iam/resource.go +215 -0
  553. package/dist/resources/templates/go-backend/internal/integrations/onex/iam/resource_test.go +242 -0
  554. package/dist/resources/templates/go-backend/internal/products/README.md +5 -0
  555. package/dist/resources/templates/go-backend/internal/sharedevents/README.md +5 -0
  556. package/dist/resources/templates/go-backend/migrations/000001_infrastructure.down.sql +13 -0
  557. package/dist/resources/templates/go-backend/migrations/000001_infrastructure.up.sql +886 -0
  558. package/dist/resources/templates/go-backend/pkg/apierror/error.go +327 -0
  559. package/dist/resources/templates/go-backend/pkg/apierror/error_code.go +65 -0
  560. package/dist/resources/templates/go-backend/pkg/apierror/error_test.go +41 -0
  561. package/dist/resources/templates/go-backend/pkg/apierror/error_type.go +14 -0
  562. package/dist/resources/templates/go-backend/pkg/apierror/http_response.go +216 -0
  563. package/dist/resources/templates/go-backend/pkg/apierror/http_response_test.go +216 -0
  564. package/dist/resources/templates/go-backend/scripts/check-openapi-clean-deletion.sh +54 -0
  565. package/dist/resources/templates/go-backend/scripts/test-migrations.sh +32 -0
  566. package/dist/resources/templates/go-backend/tests/infrastructure.sql +69 -0
  567. package/dist/resources/templates/mcp-server/.claude/docs/stack.md +338 -0
  568. package/dist/resources/templates/mcp-server/.editorconfig +13 -0
  569. package/dist/resources/templates/mcp-server/.env.example +8 -0
  570. package/dist/resources/templates/mcp-server/.github/ISSUE_TEMPLATE/bug_report.yml +104 -0
  571. package/dist/resources/templates/mcp-server/.github/ISSUE_TEMPLATE/feature_request.yml +54 -0
  572. package/dist/resources/templates/mcp-server/.github/PULL_REQUEST_TEMPLATE.md +36 -0
  573. package/dist/resources/templates/mcp-server/.github/workflows/ci.yml +78 -0
  574. package/dist/resources/templates/mcp-server/.husky/commit-msg +1 -0
  575. package/dist/resources/templates/mcp-server/.husky/pre-commit +1 -0
  576. package/dist/resources/templates/mcp-server/.lintstagedrc.json +4 -0
  577. package/dist/resources/templates/mcp-server/.nvmrc +1 -0
  578. package/dist/resources/templates/mcp-server/.prettierrc +8 -0
  579. package/dist/resources/templates/mcp-server/CONTRIBUTING.md +184 -0
  580. package/dist/resources/templates/mcp-server/Dockerfile +23 -0
  581. package/dist/resources/templates/mcp-server/LICENSE +21 -0
  582. package/dist/resources/templates/mcp-server/README.md +123 -0
  583. package/dist/resources/templates/mcp-server/_gitignore +26 -0
  584. package/dist/resources/templates/mcp-server/commitlint.config.js +24 -0
  585. package/dist/resources/templates/mcp-server/eslint.config.js +30 -0
  586. package/dist/resources/templates/mcp-server/package.json +72 -0
  587. package/dist/resources/templates/mcp-server/src/index.ts +27 -0
  588. package/dist/resources/templates/mcp-server/src/resources.ts +33 -0
  589. package/dist/resources/templates/mcp-server/src/services/.gitkeep +0 -0
  590. package/dist/resources/templates/mcp-server/src/tools.ts +43 -0
  591. package/dist/resources/templates/mcp-server/src/types/index.ts +19 -0
  592. package/dist/resources/templates/mcp-server/src/utils/index.ts +31 -0
  593. package/dist/resources/templates/mcp-server/tsconfig.json +22 -0
  594. package/dist/resources/templates/mcp-server/tsup.config.ts +14 -0
  595. package/dist/resources/templates/mcp-server/vitest.config.ts +15 -0
  596. package/dist/resources/templates/nuxt/.claude/docs/stack.md +666 -0
  597. package/dist/resources/templates/nuxt/.editorconfig +15 -0
  598. package/dist/resources/templates/nuxt/.env.example +22 -0
  599. package/dist/resources/templates/nuxt/.github/workflows/ci.yml +34 -0
  600. package/dist/resources/templates/nuxt/.husky/commit-msg +1 -0
  601. package/dist/resources/templates/nuxt/.husky/pre-commit +1 -0
  602. package/dist/resources/templates/nuxt/.nvmrc +1 -0
  603. package/dist/resources/templates/nuxt/.prettierignore +9 -0
  604. package/dist/resources/templates/nuxt/.prettierrc +1 -0
  605. package/dist/resources/templates/nuxt/README.md +23 -0
  606. package/dist/resources/templates/nuxt/_gitignore +7 -0
  607. package/dist/resources/templates/nuxt/app/app.config.ts +105 -0
  608. package/dist/resources/templates/nuxt/app/i18n/locales/en.json +5 -0
  609. package/dist/resources/templates/nuxt/app/pages/app/index.vue +224 -0
  610. package/dist/resources/templates/nuxt/app/pages/authors/[slug].vue +37 -0
  611. package/dist/resources/templates/nuxt/app/pages/blog/[slug].vue +55 -0
  612. package/dist/resources/templates/nuxt/app/pages/blog/category/[category].vue +38 -0
  613. package/dist/resources/templates/nuxt/app/pages/blog/index.vue +46 -0
  614. package/dist/resources/templates/nuxt/app/pages/index.vue +626 -0
  615. package/dist/resources/templates/nuxt/app/pages/legal/privacy.vue +21 -0
  616. package/dist/resources/templates/nuxt/app/pages/legal/terms.vue +21 -0
  617. package/dist/resources/templates/nuxt/app/pages/ui/index.vue +397 -0
  618. package/dist/resources/templates/nuxt/commitlint.config.mjs +1 -0
  619. package/dist/resources/templates/nuxt/eslint.config.mjs +4 -0
  620. package/dist/resources/templates/nuxt/lint-staged.config.mjs +8 -0
  621. package/dist/resources/templates/nuxt/nuxt.config.ts +71 -0
  622. package/dist/resources/templates/nuxt/package.json +67 -0
  623. package/dist/resources/templates/nuxt/public/apple-touch-icon.png +0 -0
  624. package/dist/resources/templates/nuxt/public/favicon.ico +0 -0
  625. package/dist/resources/templates/nuxt/public/favicon.svg +5 -0
  626. package/dist/resources/templates/nuxt/public/icon-16x16.png +0 -0
  627. package/dist/resources/templates/nuxt/public/icon-192x192.png +0 -0
  628. package/dist/resources/templates/nuxt/public/icon-32x32.png +0 -0
  629. package/dist/resources/templates/nuxt/public/icon-512x512.png +0 -0
  630. package/dist/resources/templates/nuxt/public/logo.svg +6 -0
  631. package/dist/resources/templates/nuxt/public/media/hero-product-gallery.png +0 -0
  632. package/dist/resources/templates/nuxt/server/api/content/sitemap-urls.get.ts +12 -0
  633. package/dist/resources/templates/nuxt/server/api/preview.get.ts +9 -0
  634. package/dist/resources/templates/nuxt/stylelint.config.mjs +3 -0
  635. package/dist/resources/templates/nuxt/test/e2e/rendering.test.ts +13 -0
  636. package/dist/resources/templates/nuxt/tsconfig.json +3 -0
  637. package/dist/resources/templates/nuxt/vitest.config.ts +8 -0
  638. package/package.json +16 -12
@@ -0,0 +1,1624 @@
1
+ {
2
+ "source_repository": "https://onedev.yhy.gd.cn/platform/onex",
3
+ "source_commit": "4fd93f675a6579773d16ab8272395cab8c761670",
4
+ "hash_scope": "Source SHA identifies the inspected working-tree file. Target SHA identifies the distributed template before variable materialization.",
5
+ "documents": [
6
+ {
7
+ "source": "backend/CLAUDE.md",
8
+ "target": "CLAUDE.md",
9
+ "source_sha256": "d263504fd2f396d2aa74034e8d40a0ec992a5351ae75bdcbada39c5b20698136",
10
+ "target_template_sha256": "5fc018eb21177f745d3dd29d72a8ca326b54b38415a2d1fb1ad4b1463359b5df",
11
+ "source_lines": 1103,
12
+ "target_lines": 1139,
13
+ "source_heading_count": 89,
14
+ "retained_heading_count": 85,
15
+ "changes": [
16
+ {
17
+ "operation": "replace",
18
+ "source_lines": [
19
+ 1,
20
+ 1
21
+ ],
22
+ "target_lines": [
23
+ 1,
24
+ 6
25
+ ]
26
+ },
27
+ {
28
+ "operation": "replace",
29
+ "source_lines": [
30
+ 9,
31
+ 9
32
+ ],
33
+ "target_lines": [
34
+ 14,
35
+ 45
36
+ ]
37
+ },
38
+ {
39
+ "operation": "replace",
40
+ "source_lines": [
41
+ 46,
42
+ 46
43
+ ],
44
+ "target_lines": [
45
+ 82,
46
+ 82
47
+ ]
48
+ },
49
+ {
50
+ "operation": "replace",
51
+ "source_lines": [
52
+ 84,
53
+ 87
54
+ ],
55
+ "target_lines": [
56
+ 120,
57
+ 123
58
+ ]
59
+ },
60
+ {
61
+ "operation": "replace",
62
+ "source_lines": [
63
+ 89,
64
+ 89
65
+ ],
66
+ "target_lines": [
67
+ 125,
68
+ 125
69
+ ]
70
+ },
71
+ {
72
+ "operation": "replace",
73
+ "source_lines": [
74
+ 104,
75
+ 104
76
+ ],
77
+ "target_lines": [
78
+ 140,
79
+ 140
80
+ ]
81
+ },
82
+ {
83
+ "operation": "replace",
84
+ "source_lines": [
85
+ 253,
86
+ 253
87
+ ],
88
+ "target_lines": [
89
+ 289,
90
+ 289
91
+ ]
92
+ },
93
+ {
94
+ "operation": "replace",
95
+ "source_lines": [
96
+ 266,
97
+ 266
98
+ ],
99
+ "target_lines": [
100
+ 302,
101
+ 302
102
+ ]
103
+ },
104
+ {
105
+ "operation": "replace",
106
+ "source_lines": [
107
+ 274,
108
+ 274
109
+ ],
110
+ "target_lines": [
111
+ 310,
112
+ 310
113
+ ]
114
+ },
115
+ {
116
+ "operation": "replace",
117
+ "source_lines": [
118
+ 357,
119
+ 357
120
+ ],
121
+ "target_lines": [
122
+ 393,
123
+ 393
124
+ ]
125
+ },
126
+ {
127
+ "operation": "replace",
128
+ "source_lines": [
129
+ 475,
130
+ 475
131
+ ],
132
+ "target_lines": [
133
+ 511,
134
+ 511
135
+ ]
136
+ },
137
+ {
138
+ "operation": "replace",
139
+ "source_lines": [
140
+ 547,
141
+ 547
142
+ ],
143
+ "target_lines": [
144
+ 583,
145
+ 583
146
+ ]
147
+ },
148
+ {
149
+ "operation": "replace",
150
+ "source_lines": [
151
+ 649,
152
+ 649
153
+ ],
154
+ "target_lines": [
155
+ 685,
156
+ 685
157
+ ]
158
+ },
159
+ {
160
+ "operation": "replace",
161
+ "source_lines": [
162
+ 727,
163
+ 727
164
+ ],
165
+ "target_lines": [
166
+ 763,
167
+ 763
168
+ ]
169
+ },
170
+ {
171
+ "operation": "replace",
172
+ "source_lines": [
173
+ 743,
174
+ 743
175
+ ],
176
+ "target_lines": [
177
+ 779,
178
+ 779
179
+ ]
180
+ },
181
+ {
182
+ "operation": "replace",
183
+ "source_lines": [
184
+ 1010,
185
+ 1010
186
+ ],
187
+ "target_lines": [
188
+ 1046,
189
+ 1046
190
+ ]
191
+ },
192
+ {
193
+ "operation": "replace",
194
+ "source_lines": [
195
+ 1047,
196
+ 1047
197
+ ],
198
+ "target_lines": [
199
+ 1083,
200
+ 1083
201
+ ]
202
+ },
203
+ {
204
+ "operation": "replace",
205
+ "source_lines": [
206
+ 1101,
207
+ 1101
208
+ ],
209
+ "target_lines": [
210
+ 1137,
211
+ 1137
212
+ ]
213
+ }
214
+ ]
215
+ },
216
+ {
217
+ "source": "backend/.claude/docs/api-design.md",
218
+ "target": ".claude/docs/api-design.md",
219
+ "source_sha256": "9ce2e7b828723587f3673ebe637b5b868853e952934df2ec6a7ee77febe0afb3",
220
+ "target_template_sha256": "890a859eefbf8af0d4a24fb5fe07156b9c3fc535b28f30caeba28f14c1e92128",
221
+ "source_lines": 432,
222
+ "target_lines": 486,
223
+ "source_heading_count": 9,
224
+ "retained_heading_count": 9,
225
+ "changes": [
226
+ {
227
+ "operation": "replace",
228
+ "source_lines": [
229
+ 163,
230
+ 164
231
+ ],
232
+ "target_lines": [
233
+ 163,
234
+ 165
235
+ ]
236
+ },
237
+ {
238
+ "operation": "replace",
239
+ "source_lines": [
240
+ 169,
241
+ 169
242
+ ],
243
+ "target_lines": [
244
+ 170,
245
+ 170
246
+ ]
247
+ },
248
+ {
249
+ "operation": "replace",
250
+ "source_lines": [
251
+ 172,
252
+ 173
253
+ ],
254
+ "target_lines": [
255
+ 173,
256
+ 174
257
+ ]
258
+ },
259
+ {
260
+ "operation": "replace",
261
+ "source_lines": [
262
+ 184,
263
+ 184
264
+ ],
265
+ "target_lines": [
266
+ 185,
267
+ 185
268
+ ]
269
+ },
270
+ {
271
+ "operation": "replace",
272
+ "source_lines": [
273
+ 195,
274
+ 195
275
+ ],
276
+ "target_lines": [
277
+ 196,
278
+ 196
279
+ ]
280
+ },
281
+ {
282
+ "operation": "replace",
283
+ "source_lines": [
284
+ 226,
285
+ 226
286
+ ],
287
+ "target_lines": [
288
+ 227,
289
+ 227
290
+ ]
291
+ },
292
+ {
293
+ "operation": "replace",
294
+ "source_lines": [
295
+ 249,
296
+ 249
297
+ ],
298
+ "target_lines": [
299
+ 250,
300
+ 250
301
+ ]
302
+ },
303
+ {
304
+ "operation": "replace",
305
+ "source_lines": [
306
+ 251,
307
+ 251
308
+ ],
309
+ "target_lines": [
310
+ 252,
311
+ 252
312
+ ]
313
+ },
314
+ {
315
+ "operation": "replace",
316
+ "source_lines": [
317
+ 253,
318
+ 253
319
+ ],
320
+ "target_lines": [
321
+ 254,
322
+ 254
323
+ ]
324
+ },
325
+ {
326
+ "operation": "replace",
327
+ "source_lines": [
328
+ 259,
329
+ 259
330
+ ],
331
+ "target_lines": [
332
+ 260,
333
+ 260
334
+ ]
335
+ },
336
+ {
337
+ "operation": "replace",
338
+ "source_lines": [
339
+ 261,
340
+ 261
341
+ ],
342
+ "target_lines": [
343
+ 262,
344
+ 262
345
+ ]
346
+ },
347
+ {
348
+ "operation": "replace",
349
+ "source_lines": [
350
+ 263,
351
+ 263
352
+ ],
353
+ "target_lines": [
354
+ 264,
355
+ 264
356
+ ]
357
+ },
358
+ {
359
+ "operation": "replace",
360
+ "source_lines": [
361
+ 270,
362
+ 287
363
+ ],
364
+ "target_lines": [
365
+ 271,
366
+ 271
367
+ ]
368
+ },
369
+ {
370
+ "operation": "replace",
371
+ "source_lines": [
372
+ 320,
373
+ 320
374
+ ],
375
+ "target_lines": [
376
+ 304,
377
+ 304
378
+ ]
379
+ },
380
+ {
381
+ "operation": "replace",
382
+ "source_lines": [
383
+ 322,
384
+ 325
385
+ ],
386
+ "target_lines": [
387
+ 306,
388
+ 315
389
+ ]
390
+ },
391
+ {
392
+ "operation": "replace",
393
+ "source_lines": [
394
+ 328,
395
+ 333
396
+ ],
397
+ "target_lines": [
398
+ 318,
399
+ 323
400
+ ]
401
+ },
402
+ {
403
+ "operation": "replace",
404
+ "source_lines": [
405
+ 336,
406
+ 340
407
+ ],
408
+ "target_lines": [
409
+ 326,
410
+ 329
411
+ ]
412
+ },
413
+ {
414
+ "operation": "replace",
415
+ "source_lines": [
416
+ 342,
417
+ 342
418
+ ],
419
+ "target_lines": [
420
+ 331,
421
+ 332
422
+ ]
423
+ },
424
+ {
425
+ "operation": "replace",
426
+ "source_lines": [
427
+ 344,
428
+ 344
429
+ ],
430
+ "target_lines": [
431
+ 334,
432
+ 356
433
+ ]
434
+ },
435
+ {
436
+ "operation": "delete",
437
+ "source_lines": [
438
+ 352,
439
+ 357
440
+ ],
441
+ "target_lines": [
442
+ 364,
443
+ 363
444
+ ]
445
+ },
446
+ {
447
+ "operation": "replace",
448
+ "source_lines": [
449
+ 363,
450
+ 363
451
+ ],
452
+ "target_lines": [
453
+ 369,
454
+ 369
455
+ ]
456
+ },
457
+ {
458
+ "operation": "replace",
459
+ "source_lines": [
460
+ 365,
461
+ 365
462
+ ],
463
+ "target_lines": [
464
+ 371,
465
+ 382
466
+ ]
467
+ },
468
+ {
469
+ "operation": "replace",
470
+ "source_lines": [
471
+ 370,
472
+ 370
473
+ ],
474
+ "target_lines": [
475
+ 387,
476
+ 387
477
+ ]
478
+ },
479
+ {
480
+ "operation": "replace",
481
+ "source_lines": [
482
+ 375,
483
+ 375
484
+ ],
485
+ "target_lines": [
486
+ 392,
487
+ 397
488
+ ]
489
+ },
490
+ {
491
+ "operation": "replace",
492
+ "source_lines": [
493
+ 380,
494
+ 380
495
+ ],
496
+ "target_lines": [
497
+ 402,
498
+ 402
499
+ ]
500
+ },
501
+ {
502
+ "operation": "replace",
503
+ "source_lines": [
504
+ 382,
505
+ 384
506
+ ],
507
+ "target_lines": [
508
+ 404,
509
+ 416
510
+ ]
511
+ },
512
+ {
513
+ "operation": "replace",
514
+ "source_lines": [
515
+ 387,
516
+ 393
517
+ ],
518
+ "target_lines": [
519
+ 419,
520
+ 423
521
+ ]
522
+ },
523
+ {
524
+ "operation": "replace",
525
+ "source_lines": [
526
+ 396,
527
+ 396
528
+ ],
529
+ "target_lines": [
530
+ 426,
531
+ 426
532
+ ]
533
+ },
534
+ {
535
+ "operation": "replace",
536
+ "source_lines": [
537
+ 399,
538
+ 414
539
+ ],
540
+ "target_lines": [
541
+ 429,
542
+ 432
543
+ ]
544
+ },
545
+ {
546
+ "operation": "replace",
547
+ "source_lines": [
548
+ 417,
549
+ 423
550
+ ],
551
+ "target_lines": [
552
+ 435,
553
+ 477
554
+ ]
555
+ }
556
+ ]
557
+ },
558
+ {
559
+ "source": ".claude/docs/architecture-template.md",
560
+ "target": ".claude/docs/architecture-template.md",
561
+ "source_sha256": "b74c529abec5ff160bd61942f98f172bbe70170490eaa6aba32d32ce70ec4c45",
562
+ "target_template_sha256": "9e34637a0e3f44339f6bb73507a2ccd1b3a7471ab1c1b9dab2233a2fe685b5be",
563
+ "source_lines": 449,
564
+ "target_lines": 449,
565
+ "source_heading_count": 63,
566
+ "retained_heading_count": 63,
567
+ "changes": [
568
+ {
569
+ "operation": "replace",
570
+ "source_lines": [
571
+ 199,
572
+ 200
573
+ ],
574
+ "target_lines": [
575
+ 199,
576
+ 200
577
+ ]
578
+ }
579
+ ]
580
+ },
581
+ {
582
+ "source": "backend/.claude/docs/check-list.md",
583
+ "target": ".claude/docs/check-list.md",
584
+ "source_sha256": "abe272bec01bca44fca1e67050f7dd2d25c1213ab79c66c501cb4e47b695ec29",
585
+ "target_template_sha256": "36be967ce253042ee4e220d94035497eebd5a9d68da2fe9d32e1f159e198b32f",
586
+ "source_lines": 155,
587
+ "target_lines": 155,
588
+ "source_heading_count": 19,
589
+ "retained_heading_count": 19,
590
+ "changes": [
591
+ {
592
+ "operation": "replace",
593
+ "source_lines": [
594
+ 32,
595
+ 32
596
+ ],
597
+ "target_lines": [
598
+ 32,
599
+ 32
600
+ ]
601
+ },
602
+ {
603
+ "operation": "replace",
604
+ "source_lines": [
605
+ 67,
606
+ 67
607
+ ],
608
+ "target_lines": [
609
+ 67,
610
+ 67
611
+ ]
612
+ }
613
+ ]
614
+ },
615
+ {
616
+ "source": "backend/.claude/docs/database.md",
617
+ "target": ".claude/docs/database.md",
618
+ "source_sha256": "ce1327c9f0868566b3960795e22c46774b9ffdd39505492a1277c9f7343eff67",
619
+ "target_template_sha256": "1a55b063ed60813189fdf05a0e6a8e87b5213ff8bf8ac2c994865577d17e5451",
620
+ "source_lines": 369,
621
+ "target_lines": 369,
622
+ "source_heading_count": 14,
623
+ "retained_heading_count": 14,
624
+ "changes": [
625
+ {
626
+ "operation": "replace",
627
+ "source_lines": [
628
+ 116,
629
+ 116
630
+ ],
631
+ "target_lines": [
632
+ 116,
633
+ 116
634
+ ]
635
+ },
636
+ {
637
+ "operation": "replace",
638
+ "source_lines": [
639
+ 287,
640
+ 287
641
+ ],
642
+ "target_lines": [
643
+ 287,
644
+ 287
645
+ ]
646
+ },
647
+ {
648
+ "operation": "replace",
649
+ "source_lines": [
650
+ 299,
651
+ 299
652
+ ],
653
+ "target_lines": [
654
+ 299,
655
+ 299
656
+ ]
657
+ },
658
+ {
659
+ "operation": "replace",
660
+ "source_lines": [
661
+ 345,
662
+ 345
663
+ ],
664
+ "target_lines": [
665
+ 345,
666
+ 345
667
+ ]
668
+ },
669
+ {
670
+ "operation": "replace",
671
+ "source_lines": [
672
+ 359,
673
+ 359
674
+ ],
675
+ "target_lines": [
676
+ 359,
677
+ 359
678
+ ]
679
+ }
680
+ ]
681
+ },
682
+ {
683
+ "source": "backend/.claude/docs/e2e-standards.md",
684
+ "target": ".claude/docs/e2e-standards.md",
685
+ "source_sha256": "719aecf2f91587956b175708ed43a98e5ea4ed965ca0fde8bb74855eecd7f260",
686
+ "target_template_sha256": "719aecf2f91587956b175708ed43a98e5ea4ed965ca0fde8bb74855eecd7f260",
687
+ "source_lines": 161,
688
+ "target_lines": 161,
689
+ "source_heading_count": 14,
690
+ "retained_heading_count": 14,
691
+ "changes": []
692
+ },
693
+ {
694
+ "source": "backend/.claude/docs/error-handling.md",
695
+ "target": ".claude/docs/error-handling.md",
696
+ "source_sha256": "a7f3200a4385bdf5952b77915e645edf0f5b5b2278f43c5658326e0f016d9c4e",
697
+ "target_template_sha256": "ecd80de34c1e6abdee5f33646a673e91cceff5d32ad367c6c3a21b05542733e7",
698
+ "source_lines": 258,
699
+ "target_lines": 558,
700
+ "source_heading_count": 7,
701
+ "retained_heading_count": 7,
702
+ "changes": [
703
+ {
704
+ "operation": "replace",
705
+ "source_lines": [
706
+ 10,
707
+ 10
708
+ ],
709
+ "target_lines": [
710
+ 10,
711
+ 10
712
+ ]
713
+ },
714
+ {
715
+ "operation": "insert",
716
+ "source_lines": [
717
+ 12,
718
+ 11
719
+ ],
720
+ "target_lines": [
721
+ 12,
722
+ 12
723
+ ]
724
+ },
725
+ {
726
+ "operation": "insert",
727
+ "source_lines": [
728
+ 15,
729
+ 14
730
+ ],
731
+ "target_lines": [
732
+ 16,
733
+ 16
734
+ ]
735
+ },
736
+ {
737
+ "operation": "insert",
738
+ "source_lines": [
739
+ 18,
740
+ 17
741
+ ],
742
+ "target_lines": [
743
+ 20,
744
+ 22
745
+ ]
746
+ },
747
+ {
748
+ "operation": "replace",
749
+ "source_lines": [
750
+ 24,
751
+ 24
752
+ ],
753
+ "target_lines": [
754
+ 29,
755
+ 29
756
+ ]
757
+ },
758
+ {
759
+ "operation": "insert",
760
+ "source_lines": [
761
+ 26,
762
+ 25
763
+ ],
764
+ "target_lines": [
765
+ 31,
766
+ 31
767
+ ]
768
+ },
769
+ {
770
+ "operation": "replace",
771
+ "source_lines": [
772
+ 28,
773
+ 35
774
+ ],
775
+ "target_lines": [
776
+ 34,
777
+ 43
778
+ ]
779
+ },
780
+ {
781
+ "operation": "replace",
782
+ "source_lines": [
783
+ 37,
784
+ 40
785
+ ],
786
+ "target_lines": [
787
+ 45,
788
+ 54
789
+ ]
790
+ },
791
+ {
792
+ "operation": "replace",
793
+ "source_lines": [
794
+ 42,
795
+ 42
796
+ ],
797
+ "target_lines": [
798
+ 56,
799
+ 73
800
+ ]
801
+ },
802
+ {
803
+ "operation": "replace",
804
+ "source_lines": [
805
+ 44,
806
+ 50
807
+ ],
808
+ "target_lines": [
809
+ 75,
810
+ 92
811
+ ]
812
+ },
813
+ {
814
+ "operation": "replace",
815
+ "source_lines": [
816
+ 57,
817
+ 57
818
+ ],
819
+ "target_lines": [
820
+ 99,
821
+ 99
822
+ ]
823
+ },
824
+ {
825
+ "operation": "replace",
826
+ "source_lines": [
827
+ 59,
828
+ 59
829
+ ],
830
+ "target_lines": [
831
+ 101,
832
+ 106
833
+ ]
834
+ },
835
+ {
836
+ "operation": "insert",
837
+ "source_lines": [
838
+ 69,
839
+ 68
840
+ ],
841
+ "target_lines": [
842
+ 116,
843
+ 116
844
+ ]
845
+ },
846
+ {
847
+ "operation": "insert",
848
+ "source_lines": [
849
+ 78,
850
+ 77
851
+ ],
852
+ "target_lines": [
853
+ 126,
854
+ 143
855
+ ]
856
+ },
857
+ {
858
+ "operation": "insert",
859
+ "source_lines": [
860
+ 82,
861
+ 81
862
+ ],
863
+ "target_lines": [
864
+ 148,
865
+ 149
866
+ ]
867
+ },
868
+ {
869
+ "operation": "replace",
870
+ "source_lines": [
871
+ 88,
872
+ 88
873
+ ],
874
+ "target_lines": [
875
+ 156,
876
+ 159
877
+ ]
878
+ },
879
+ {
880
+ "operation": "replace",
881
+ "source_lines": [
882
+ 90,
883
+ 90
884
+ ],
885
+ "target_lines": [
886
+ 161,
887
+ 215
888
+ ]
889
+ },
890
+ {
891
+ "operation": "insert",
892
+ "source_lines": [
893
+ 93,
894
+ 92
895
+ ],
896
+ "target_lines": [
897
+ 218,
898
+ 388
899
+ ]
900
+ },
901
+ {
902
+ "operation": "insert",
903
+ "source_lines": [
904
+ 97,
905
+ 96
906
+ ],
907
+ "target_lines": [
908
+ 393,
909
+ 401
910
+ ]
911
+ },
912
+ {
913
+ "operation": "replace",
914
+ "source_lines": [
915
+ 104,
916
+ 104
917
+ ],
918
+ "target_lines": [
919
+ 409,
920
+ 420
921
+ ]
922
+ },
923
+ {
924
+ "operation": "replace",
925
+ "source_lines": [
926
+ 106,
927
+ 143
928
+ ],
929
+ "target_lines": [
930
+ 422,
931
+ 423
932
+ ]
933
+ },
934
+ {
935
+ "operation": "replace",
936
+ "source_lines": [
937
+ 151,
938
+ 153
939
+ ],
940
+ "target_lines": [
941
+ 431,
942
+ 431
943
+ ]
944
+ },
945
+ {
946
+ "operation": "replace",
947
+ "source_lines": [
948
+ 155,
949
+ 158
950
+ ],
951
+ "target_lines": [
952
+ 433,
953
+ 445
954
+ ]
955
+ },
956
+ {
957
+ "operation": "replace",
958
+ "source_lines": [
959
+ 161,
960
+ 169
961
+ ],
962
+ "target_lines": [
963
+ 448,
964
+ 452
965
+ ]
966
+ },
967
+ {
968
+ "operation": "insert",
969
+ "source_lines": [
970
+ 171,
971
+ 170
972
+ ],
973
+ "target_lines": [
974
+ 454,
975
+ 454
976
+ ]
977
+ },
978
+ {
979
+ "operation": "replace",
980
+ "source_lines": [
981
+ 176,
982
+ 176
983
+ ],
984
+ "target_lines": [
985
+ 460,
986
+ 460
987
+ ]
988
+ },
989
+ {
990
+ "operation": "replace",
991
+ "source_lines": [
992
+ 178,
993
+ 178
994
+ ],
995
+ "target_lines": [
996
+ 462,
997
+ 474
998
+ ]
999
+ },
1000
+ {
1001
+ "operation": "insert",
1002
+ "source_lines": [
1003
+ 183,
1004
+ 182
1005
+ ],
1006
+ "target_lines": [
1007
+ 479,
1008
+ 480
1009
+ ]
1010
+ },
1011
+ {
1012
+ "operation": "replace",
1013
+ "source_lines": [
1014
+ 184,
1015
+ 184
1016
+ ],
1017
+ "target_lines": [
1018
+ 482,
1019
+ 483
1020
+ ]
1021
+ },
1022
+ {
1023
+ "operation": "replace",
1024
+ "source_lines": [
1025
+ 186,
1026
+ 187
1027
+ ],
1028
+ "target_lines": [
1029
+ 485,
1030
+ 490
1031
+ ]
1032
+ },
1033
+ {
1034
+ "operation": "replace",
1035
+ "source_lines": [
1036
+ 189,
1037
+ 196
1038
+ ],
1039
+ "target_lines": [
1040
+ 492,
1041
+ 494
1042
+ ]
1043
+ },
1044
+ {
1045
+ "operation": "replace",
1046
+ "source_lines": [
1047
+ 207,
1048
+ 209
1049
+ ],
1050
+ "target_lines": [
1051
+ 505,
1052
+ 505
1053
+ ]
1054
+ },
1055
+ {
1056
+ "operation": "replace",
1057
+ "source_lines": [
1058
+ 212,
1059
+ 228
1060
+ ],
1061
+ "target_lines": [
1062
+ 508,
1063
+ 511
1064
+ ]
1065
+ },
1066
+ {
1067
+ "operation": "replace",
1068
+ "source_lines": [
1069
+ 231,
1070
+ 239
1071
+ ],
1072
+ "target_lines": [
1073
+ 514,
1074
+ 524
1075
+ ]
1076
+ },
1077
+ {
1078
+ "operation": "insert",
1079
+ "source_lines": [
1080
+ 242,
1081
+ 241
1082
+ ],
1083
+ "target_lines": [
1084
+ 527,
1085
+ 527
1086
+ ]
1087
+ },
1088
+ {
1089
+ "operation": "replace",
1090
+ "source_lines": [
1091
+ 245,
1092
+ 245
1093
+ ],
1094
+ "target_lines": [
1095
+ 531,
1096
+ 531
1097
+ ]
1098
+ },
1099
+ {
1100
+ "operation": "replace",
1101
+ "source_lines": [
1102
+ 247,
1103
+ 247
1104
+ ],
1105
+ "target_lines": [
1106
+ 533,
1107
+ 533
1108
+ ]
1109
+ },
1110
+ {
1111
+ "operation": "replace",
1112
+ "source_lines": [
1113
+ 249,
1114
+ 249
1115
+ ],
1116
+ "target_lines": [
1117
+ 535,
1118
+ 535
1119
+ ]
1120
+ },
1121
+ {
1122
+ "operation": "replace",
1123
+ "source_lines": [
1124
+ 251,
1125
+ 251
1126
+ ],
1127
+ "target_lines": [
1128
+ 537,
1129
+ 539
1130
+ ]
1131
+ },
1132
+ {
1133
+ "operation": "replace",
1134
+ "source_lines": [
1135
+ 253,
1136
+ 253
1137
+ ],
1138
+ "target_lines": [
1139
+ 541,
1140
+ 553
1141
+ ]
1142
+ },
1143
+ {
1144
+ "operation": "replace",
1145
+ "source_lines": [
1146
+ 255,
1147
+ 255
1148
+ ],
1149
+ "target_lines": [
1150
+ 555,
1151
+ 555
1152
+ ]
1153
+ }
1154
+ ]
1155
+ },
1156
+ {
1157
+ "source": "backend/.claude/docs/event-runtime-boundary.md",
1158
+ "target": ".claude/docs/event-runtime-boundary.md",
1159
+ "source_sha256": "18130708d01b173bc2e7526f2ab530ba886910234db4260e9dd375d141efaeeb",
1160
+ "target_template_sha256": "18130708d01b173bc2e7526f2ab530ba886910234db4260e9dd375d141efaeeb",
1161
+ "source_lines": 124,
1162
+ "target_lines": 124,
1163
+ "source_heading_count": 11,
1164
+ "retained_heading_count": 11,
1165
+ "changes": []
1166
+ },
1167
+ {
1168
+ "source": "backend/.claude/docs/identifier-contract.md",
1169
+ "target": ".claude/docs/identifier-contract.md",
1170
+ "source_sha256": "27cb70840f24e42b9d4b85e713b67635ce6e101c716687ab613379d1343ea890",
1171
+ "target_template_sha256": "27cb70840f24e42b9d4b85e713b67635ce6e101c716687ab613379d1343ea890",
1172
+ "source_lines": 195,
1173
+ "target_lines": 195,
1174
+ "source_heading_count": 15,
1175
+ "retained_heading_count": 15,
1176
+ "changes": []
1177
+ },
1178
+ {
1179
+ "source": "backend/.claude/docs/index.md",
1180
+ "target": ".claude/docs/index.md",
1181
+ "source_sha256": "bb43af098ff5b871488df6e60c34a15ef476786fef406a4ee27103de23c3b62f",
1182
+ "target_template_sha256": "77a9f4fda66ce3abb78da381694f86f63e683f25ec53c649b3cd5d666ff96c60",
1183
+ "source_lines": 17,
1184
+ "target_lines": 22,
1185
+ "source_heading_count": 1,
1186
+ "retained_heading_count": 1,
1187
+ "changes": [
1188
+ {
1189
+ "operation": "replace",
1190
+ "source_lines": [
1191
+ 3,
1192
+ 3
1193
+ ],
1194
+ "target_lines": [
1195
+ 3,
1196
+ 3
1197
+ ]
1198
+ },
1199
+ {
1200
+ "operation": "insert",
1201
+ "source_lines": [
1202
+ 18,
1203
+ 17
1204
+ ],
1205
+ "target_lines": [
1206
+ 18,
1207
+ 22
1208
+ ]
1209
+ }
1210
+ ]
1211
+ },
1212
+ {
1213
+ "source": "backend/.claude/docs/logging.md",
1214
+ "target": ".claude/docs/logging.md",
1215
+ "source_sha256": "7f2cf9e546c249e848b461b941565aa66d39627420b2df761009d4426e6267d3",
1216
+ "target_template_sha256": "5f9914c114065b2c414eb2ce2db205e3987c7f765db71d4bd6a58ee3517b68fb",
1217
+ "source_lines": 276,
1218
+ "target_lines": 314,
1219
+ "source_heading_count": 12,
1220
+ "retained_heading_count": 12,
1221
+ "changes": [
1222
+ {
1223
+ "operation": "replace",
1224
+ "source_lines": [
1225
+ 10,
1226
+ 10
1227
+ ],
1228
+ "target_lines": [
1229
+ 10,
1230
+ 10
1231
+ ]
1232
+ },
1233
+ {
1234
+ "operation": "replace",
1235
+ "source_lines": [
1236
+ 12,
1237
+ 13
1238
+ ],
1239
+ "target_lines": [
1240
+ 12,
1241
+ 22
1242
+ ]
1243
+ },
1244
+ {
1245
+ "operation": "insert",
1246
+ "source_lines": [
1247
+ 15,
1248
+ 14
1249
+ ],
1250
+ "target_lines": [
1251
+ 24,
1252
+ 24
1253
+ ]
1254
+ },
1255
+ {
1256
+ "operation": "insert",
1257
+ "source_lines": [
1258
+ 19,
1259
+ 18
1260
+ ],
1261
+ "target_lines": [
1262
+ 29,
1263
+ 29
1264
+ ]
1265
+ },
1266
+ {
1267
+ "operation": "delete",
1268
+ "source_lines": [
1269
+ 22,
1270
+ 22
1271
+ ],
1272
+ "target_lines": [
1273
+ 33,
1274
+ 32
1275
+ ]
1276
+ },
1277
+ {
1278
+ "operation": "insert",
1279
+ "source_lines": [
1280
+ 33,
1281
+ 32
1282
+ ],
1283
+ "target_lines": [
1284
+ 43,
1285
+ 43
1286
+ ]
1287
+ },
1288
+ {
1289
+ "operation": "insert",
1290
+ "source_lines": [
1291
+ 46,
1292
+ 45
1293
+ ],
1294
+ "target_lines": [
1295
+ 57,
1296
+ 58
1297
+ ]
1298
+ },
1299
+ {
1300
+ "operation": "replace",
1301
+ "source_lines": [
1302
+ 214,
1303
+ 214
1304
+ ],
1305
+ "target_lines": [
1306
+ 227,
1307
+ 227
1308
+ ]
1309
+ },
1310
+ {
1311
+ "operation": "replace",
1312
+ "source_lines": [
1313
+ 216,
1314
+ 216
1315
+ ],
1316
+ "target_lines": [
1317
+ 229,
1318
+ 238
1319
+ ]
1320
+ },
1321
+ {
1322
+ "operation": "replace",
1323
+ "source_lines": [
1324
+ 219,
1325
+ 219
1326
+ ],
1327
+ "target_lines": [
1328
+ 241,
1329
+ 245
1330
+ ]
1331
+ },
1332
+ {
1333
+ "operation": "replace",
1334
+ "source_lines": [
1335
+ 223,
1336
+ 224
1337
+ ],
1338
+ "target_lines": [
1339
+ 249,
1340
+ 261
1341
+ ]
1342
+ },
1343
+ {
1344
+ "operation": "replace",
1345
+ "source_lines": [
1346
+ 229,
1347
+ 233
1348
+ ],
1349
+ "target_lines": [
1350
+ 266,
1351
+ 271
1352
+ ]
1353
+ }
1354
+ ]
1355
+ },
1356
+ {
1357
+ "source": "backend/.claude/docs/mediagen-provider-onboarding-sop.md",
1358
+ "target": ".claude/docs/mediagen-provider-onboarding-sop.md",
1359
+ "source_sha256": "e063b530b72d0cb42de3dd76d07b020e28f1b4b3bfcc72e2105099c7366ca6c4",
1360
+ "target_template_sha256": "deb40a911cadc8fdd46c8bc25a022ebe42eb60acbf70323309f98100f59f8266",
1361
+ "source_lines": 915,
1362
+ "target_lines": 917,
1363
+ "source_heading_count": 60,
1364
+ "retained_heading_count": 60,
1365
+ "changes": [
1366
+ {
1367
+ "operation": "insert",
1368
+ "source_lines": [
1369
+ 2,
1370
+ 1
1371
+ ],
1372
+ "target_lines": [
1373
+ 2,
1374
+ 3
1375
+ ]
1376
+ }
1377
+ ]
1378
+ },
1379
+ {
1380
+ "source": "backend/.claude/docs/mediagen-provider-quick-reference.md",
1381
+ "target": ".claude/docs/mediagen-provider-quick-reference.md",
1382
+ "source_sha256": "3c661d4fa59468601d5041ec9990cfe4dade3c8fddac50431b85c8417c45376a",
1383
+ "target_template_sha256": "ee82dfed1cb2df6d8094425c7e665ada721adcc462207d177c8e3ac763fe1f95",
1384
+ "source_lines": 193,
1385
+ "target_lines": 195,
1386
+ "source_heading_count": 13,
1387
+ "retained_heading_count": 13,
1388
+ "changes": [
1389
+ {
1390
+ "operation": "insert",
1391
+ "source_lines": [
1392
+ 2,
1393
+ 1
1394
+ ],
1395
+ "target_lines": [
1396
+ 2,
1397
+ 3
1398
+ ]
1399
+ }
1400
+ ]
1401
+ },
1402
+ {
1403
+ "source": "backend/.claude/docs/module-standards.md",
1404
+ "target": ".claude/docs/module-standards.md",
1405
+ "source_sha256": "7a9b6651f493b34fcea0d136f4c43b5d0d9fd840bfafbd5d3955246baac649b6",
1406
+ "target_template_sha256": "70b3dbcfd5f619d2cc8c28d29cb5b4f11a393f8f573dd51d7b42494004660811",
1407
+ "source_lines": 307,
1408
+ "target_lines": 309,
1409
+ "source_heading_count": 13,
1410
+ "retained_heading_count": 13,
1411
+ "changes": [
1412
+ {
1413
+ "operation": "replace",
1414
+ "source_lines": [
1415
+ 91,
1416
+ 91
1417
+ ],
1418
+ "target_lines": [
1419
+ 91,
1420
+ 91
1421
+ ]
1422
+ },
1423
+ {
1424
+ "operation": "replace",
1425
+ "source_lines": [
1426
+ 250,
1427
+ 250
1428
+ ],
1429
+ "target_lines": [
1430
+ 250,
1431
+ 251
1432
+ ]
1433
+ },
1434
+ {
1435
+ "operation": "replace",
1436
+ "source_lines": [
1437
+ 255,
1438
+ 255
1439
+ ],
1440
+ "target_lines": [
1441
+ 256,
1442
+ 257
1443
+ ]
1444
+ },
1445
+ {
1446
+ "operation": "replace",
1447
+ "source_lines": [
1448
+ 259,
1449
+ 259
1450
+ ],
1451
+ "target_lines": [
1452
+ 261,
1453
+ 262
1454
+ ]
1455
+ },
1456
+ {
1457
+ "operation": "replace",
1458
+ "source_lines": [
1459
+ 302,
1460
+ 302
1461
+ ],
1462
+ "target_lines": [
1463
+ 305,
1464
+ 305
1465
+ ]
1466
+ },
1467
+ {
1468
+ "operation": "delete",
1469
+ "source_lines": [
1470
+ 307,
1471
+ 307
1472
+ ],
1473
+ "target_lines": [
1474
+ 310,
1475
+ 309
1476
+ ]
1477
+ }
1478
+ ]
1479
+ },
1480
+ {
1481
+ "source": "backend/.claude/docs/openapi-contract.md",
1482
+ "target": ".claude/docs/openapi-contract.md",
1483
+ "source_sha256": "047b32cb13001115d9431566f94839a8bf00c689624c59de3a7a5aa484ba9d90",
1484
+ "target_template_sha256": "047b32cb13001115d9431566f94839a8bf00c689624c59de3a7a5aa484ba9d90",
1485
+ "source_lines": 141,
1486
+ "target_lines": 141,
1487
+ "source_heading_count": 11,
1488
+ "retained_heading_count": 11,
1489
+ "changes": []
1490
+ },
1491
+ {
1492
+ "source": "backend/.claude/docs/payment-gateway-onboarding.md",
1493
+ "target": ".claude/docs/payment-gateway-onboarding.md",
1494
+ "source_sha256": "ed9457cb90e310c0316864a7926629928fc3462aaf36a42c418f6ea20a27a509",
1495
+ "target_template_sha256": "6bd8cf4fd81c276840ba5c41441919262c79b1446883bf3539350cbf0018a94b",
1496
+ "source_lines": 281,
1497
+ "target_lines": 283,
1498
+ "source_heading_count": 16,
1499
+ "retained_heading_count": 16,
1500
+ "changes": [
1501
+ {
1502
+ "operation": "insert",
1503
+ "source_lines": [
1504
+ 2,
1505
+ 1
1506
+ ],
1507
+ "target_lines": [
1508
+ 2,
1509
+ 3
1510
+ ]
1511
+ }
1512
+ ]
1513
+ },
1514
+ {
1515
+ "source": "backend/.claude/docs/platform-boundary.md",
1516
+ "target": ".claude/docs/platform-boundary.md",
1517
+ "source_sha256": "73fe23acc1ba5b5e9e257345051e9880e7ebe7cd934f04457e7d8c31f2e0e5bd",
1518
+ "target_template_sha256": "73fe23acc1ba5b5e9e257345051e9880e7ebe7cd934f04457e7d8c31f2e0e5bd",
1519
+ "source_lines": 191,
1520
+ "target_lines": 191,
1521
+ "source_heading_count": 13,
1522
+ "retained_heading_count": 13,
1523
+ "changes": []
1524
+ },
1525
+ {
1526
+ "source": ".claude/docs/quality-gates.md",
1527
+ "target": ".claude/docs/quality-gates.md",
1528
+ "source_sha256": "b01d02a15f30bf1bdefc05d4070966bf30b4259a6b2f8d2031d119ef9a706cd3",
1529
+ "target_template_sha256": "b10ceb82a6880b258f3a105a9f93091910e999a7c55ac3c310e0fc423bbb2ae3",
1530
+ "source_lines": 110,
1531
+ "target_lines": 112,
1532
+ "source_heading_count": 7,
1533
+ "retained_heading_count": 7,
1534
+ "changes": [
1535
+ {
1536
+ "operation": "insert",
1537
+ "source_lines": [
1538
+ 2,
1539
+ 1
1540
+ ],
1541
+ "target_lines": [
1542
+ 2,
1543
+ 3
1544
+ ]
1545
+ }
1546
+ ]
1547
+ }
1548
+ ],
1549
+ "source_implementation_snippets": [
1550
+ {
1551
+ "source": "backend/internal/common/response/pagination.go",
1552
+ "source_sha256": "26944197282f8352536158dc364f58eb0df73d07e1e941a39a89bfe6b480eabf"
1553
+ },
1554
+ {
1555
+ "source": "backend/internal/common/response/response.go",
1556
+ "source_sha256": "cd7dae20b188836889ce27da3d45abe2326036cf74cf736ab3383b713c8490fd"
1557
+ },
1558
+ {
1559
+ "source": "backend/internal/common/types/types.go",
1560
+ "source_sha256": "63461d5e19dcc0a77840b91d698dc034e8bce840c9214fa603a546b622de2826"
1561
+ },
1562
+ {
1563
+ "source": "backend/internal/core/logger/logger.go",
1564
+ "source_sha256": "a1472915172f0665b6955c444f5efd2591366df4a2e296a1845898902c8b5e2e"
1565
+ },
1566
+ {
1567
+ "source": "backend/internal/common/middleware/requestid.go",
1568
+ "source_sha256": "0e8bd6f0b00382b161436d1757aa5c77a0c784c0f537fb668cc9c91aaff2792c"
1569
+ },
1570
+ {
1571
+ "source": "backend/internal/common/middleware/recovery.go",
1572
+ "source_sha256": "973f3d023fe6eb7cda065c60f4d7a950c51984349327ec09b500d51df1953084"
1573
+ },
1574
+ {
1575
+ "source": "backend/pkg/apierror/error_type.go",
1576
+ "source_sha256": "290129346bc5de740d022e068c272efd95410d3682e7f4daf3444913d522e213"
1577
+ },
1578
+ {
1579
+ "source": "backend/pkg/apierror/error_code.go",
1580
+ "source_sha256": "93c12930ae4461473729efe6f50cf646513d94b41de1206a9ea14a932899d2ab"
1581
+ },
1582
+ {
1583
+ "source": "backend/pkg/apierror/error.go",
1584
+ "source_sha256": "4ce60a1e9fee202939a21db34a08009845c727f45fa26e47042dd5281759c8f6"
1585
+ },
1586
+ {
1587
+ "source": "backend/cmd/platform-api/main.go",
1588
+ "source_sha256": "08caf831854265353373361d60553de5bb36a974aff8230cbb9d0d5e64be6b14"
1589
+ }
1590
+ ],
1591
+ "adaptation_reasons": [
1592
+ "Product entry names and commands are separated from the full upstream platform topology.",
1593
+ "Module variable applied only to reusable local implementation imports.",
1594
+ "Upstream platform provider SOPs retain complete dated source with explicit owner scope.",
1595
+ "Pagination examples use current PageParams, CalcOffset, PaginationMeta and full response helpers.",
1596
+ "Error and logging implementation examples use complete current source sections.",
1597
+ "Repository example participates in the current transaction context.",
1598
+ "Audit evidence uses exactly one of domain-event or request-context paths.",
1599
+ "Every new product migration requires query-backed index evidence, independent of upstream migration numbering.",
1600
+ "Historical feature plans remain with their original owner."
1601
+ ],
1602
+ "excluded_non_standards": [
1603
+ {
1604
+ "source": "backend/.claude/docs/destructive-ops-fix-design.md",
1605
+ "source_sha256": "51bcd8c0c5593c32d274e75c380662599b2d0ebef76bc037f5f04d39cdd626be",
1606
+ "reason": "One-off platform destructive-operations implementation design, not a reusable engineering standard."
1607
+ },
1608
+ {
1609
+ "source": "backend/.claude/docs/product-registry-design.md",
1610
+ "source_sha256": "63e08fc1ab934922128e37bf053767b671d48602ea9503ce140ef7a1a4f26647",
1611
+ "reason": "Platform-owned historical registry implementation and migration design; no product-local registry copy."
1612
+ },
1613
+ {
1614
+ "source": "backend/.claude/docs/security-policy-design.md",
1615
+ "source_sha256": "bc9521dc202dde6ee2ce9c008eb3e5c1ec880f5daf26b76d68124c988e1579e8",
1616
+ "reason": "Platform IAM feature implementation design, not the product security standard."
1617
+ },
1618
+ {
1619
+ "source": ".claude/docs/decisions.md",
1620
+ "source_sha256": "205e173a1ff74730a26034957efc43d695d022d2ea2347c1b0e2e44e09f41de2",
1621
+ "reason": "Platform-specific historical migration and repair ADR log; not product current-state rules."
1622
+ }
1623
+ ]
1624
+ }