@ripla/godd-mcp 1.0.4-canary.8 → 1.0.4

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 (348) hide show
  1. package/README.md +89 -94
  2. package/dist/godd.cjs +349 -233
  3. package/dist/godd.js +2193 -838
  4. package/dist/index.js +152 -122
  5. package/{notes-api → notes/api}/.env.example +6 -1
  6. package/{notes-api → notes/api}/README.md +6 -5
  7. package/{notes-api → notes/api}/app/main.py +29 -2
  8. package/{notes-api → notes/api}/app/routers/auth.py +6 -1
  9. package/{notes-api → notes/api}/app/routers/issues.py +157 -1
  10. package/{notes-api → notes/api}/app/routers/pr.py +2 -2
  11. package/{notes-api → notes/api}/app/services/github_app_token.py +32 -1
  12. package/{notes-api → notes/api}/app/services/github_issues.py +101 -11
  13. package/{notes-api → notes/api}/app/services/github_pr.py +6 -1
  14. package/{notes-api → notes/api}/tests/test_github_app_token.py +49 -1
  15. package/{notes-api → notes/api}/tests/test_github_service.py +42 -0
  16. package/notes/api/tests/test_health.py +52 -0
  17. package/{notes-api → notes/api}/tests/test_issues.py +216 -0
  18. package/{notes-api → notes/api}/tests/test_pr.py +24 -0
  19. package/{notes-api → notes/api}/tests/test_pr_chain.py +19 -0
  20. package/{notes-api → notes/api}/uv.lock +178 -2
  21. package/notes/app/DESIGN.md +273 -0
  22. package/{notes-app → notes/app}/README.md +4 -1
  23. package/notes/app/docker/Dockerfile.e2e +19 -0
  24. package/notes/app/docker/Dockerfile.prod +15 -0
  25. package/notes/app/docker/Dockerfile.test +17 -0
  26. package/notes/app/e2e/file-tree.spec.ts +26 -0
  27. package/notes/app/e2e/file-view.spec.ts +25 -0
  28. package/notes/app/e2e/fixtures.ts +28 -0
  29. package/{notes-app → notes/app}/e2e/global-setup.ts +5 -7
  30. package/notes/app/e2e/login.spec.ts +25 -0
  31. package/notes/app/e2e/pages/login-page.ts +29 -0
  32. package/notes/app/e2e/pages/main-page.ts +29 -0
  33. package/notes/app/e2e/panel-resize-handle.spec.ts +213 -0
  34. package/{notes-app → notes/app}/eslint.config.js +9 -0
  35. package/{notes-app → notes/app}/package.json +0 -3
  36. package/{notes-app → notes/app}/pnpm-workspace.yaml +1 -0
  37. package/notes/app/src/components/CommentPanel.test.tsx +194 -0
  38. package/{notes-app → notes/app}/src/components/CommentPanel.tsx +119 -10
  39. package/notes/app/src/components/CommentSelectionPopover.tsx +26 -0
  40. package/notes/app/src/components/EditToolbar.test.tsx +102 -0
  41. package/{notes-app → notes/app}/src/components/EditToolbar.tsx +5 -54
  42. package/notes/app/src/components/FileInfoPanel.branch-tab.test.tsx +250 -0
  43. package/notes/app/src/components/FileInfoPanel.history-tab.test.tsx +146 -0
  44. package/notes/app/src/components/FileInfoPanel.test.tsx +101 -0
  45. package/{notes-app → notes/app}/src/components/FileInfoPanel.tsx +135 -20
  46. package/notes/app/src/components/IssueCommentThread.test.tsx +93 -0
  47. package/notes/app/src/components/IssueCommentThread.tsx +156 -0
  48. package/notes/app/src/components/IssueDetailView.test.tsx +1118 -0
  49. package/notes/app/src/components/IssueDetailView.tsx +476 -0
  50. package/notes/app/src/components/IssueList.test.tsx +545 -0
  51. package/notes/app/src/components/IssueList.tsx +374 -0
  52. package/{notes-app → notes/app}/src/components/LabelSelector.test.tsx +94 -8
  53. package/notes/app/src/components/LabelSelector.tsx +452 -0
  54. package/{notes-app → notes/app}/src/components/MarkdownEditor.tsx +140 -2
  55. package/notes/app/src/components/PanelResizeHandle.test.tsx +481 -0
  56. package/notes/app/src/components/PanelResizeHandle.tsx +96 -0
  57. package/{notes-app → notes/app}/src/hooks/useEditSession.test.ts +171 -23
  58. package/{notes-app → notes/app}/src/hooks/useEditSession.ts +49 -62
  59. package/notes/app/src/hooks/useMdUpLayout.test.ts +10 -0
  60. package/notes/app/src/hooks/useMdUpLayout.ts +27 -0
  61. package/notes/app/src/hooks/usePeriodicSync.test.ts +244 -0
  62. package/notes/app/src/hooks/usePeriodicSync.ts +83 -0
  63. package/notes/app/src/hooks/useResizablePanelWidth.test.ts +251 -0
  64. package/notes/app/src/hooks/useResizablePanelWidth.ts +167 -0
  65. package/{notes-app → notes/app}/src/lib/api.test.ts +81 -1
  66. package/{notes-app → notes/app}/src/lib/api.ts +98 -4
  67. package/notes/app/src/lib/commentAnchor.test.ts +22 -0
  68. package/notes/app/src/lib/commentAnchor.ts +28 -0
  69. package/notes/app/src/lib/commentHighlight.test.ts +110 -0
  70. package/notes/app/src/lib/commentHighlight.ts +44 -0
  71. package/notes/app/src/lib/github-sync.test.ts +126 -0
  72. package/notes/app/src/lib/github-sync.ts +89 -0
  73. package/notes/app/src/lib/issue-list-utils.test.ts +275 -0
  74. package/notes/app/src/lib/issue-list-utils.ts +135 -0
  75. package/notes/app/src/lib/issue-mobile-layout.test.ts +17 -0
  76. package/notes/app/src/lib/issue-mobile-layout.ts +20 -0
  77. package/notes/app/src/lib/issue-url-sync.test.ts +73 -0
  78. package/notes/app/src/lib/issue-url-sync.ts +43 -0
  79. package/notes/app/src/lib/main-page-default-view.test.ts +37 -0
  80. package/notes/app/src/lib/main-page-default-view.ts +15 -0
  81. package/notes/app/src/lib/resizable-panel.test.ts +199 -0
  82. package/notes/app/src/lib/resizable-panel.ts +136 -0
  83. package/notes/app/src/pages/LoginPage.test.tsx +17 -0
  84. package/notes/app/src/pages/MainPage.branch-modal.test.tsx +226 -0
  85. package/notes/app/src/pages/MainPage.issue-sync.test.tsx +145 -0
  86. package/notes/app/src/pages/MainPage.sidebar.test.tsx +361 -0
  87. package/{notes-app → notes/app}/src/pages/MainPage.tsx +406 -61
  88. package/{notes-app → notes/app}/src/pages/SettingsPage.test.tsx +32 -23
  89. package/{notes-app → notes/app}/src/pages/UserManagementPage.test.tsx +8 -18
  90. package/notes/app/src/test/mocks.ts +156 -0
  91. package/notes/app/src/test/render.tsx +27 -0
  92. package/package.json +3 -5
  93. package/notes-api/tests/test_health.py +0 -11
  94. package/notes-app/docker/Dockerfile.e2e +0 -14
  95. package/notes-app/docker/Dockerfile.prod +0 -12
  96. package/notes-app/docker/Dockerfile.test +0 -12
  97. package/notes-app/e2e/file-tree.spec.ts +0 -29
  98. package/notes-app/e2e/file-view.spec.ts +0 -24
  99. package/notes-app/e2e/login.spec.ts +0 -32
  100. package/notes-app/src/components/IssueDetailView.test.tsx +0 -201
  101. package/notes-app/src/components/IssueDetailView.tsx +0 -318
  102. package/notes-app/src/components/IssueList.test.tsx +0 -93
  103. package/notes-app/src/components/IssueList.tsx +0 -169
  104. package/notes-app/src/components/LabelSelector.tsx +0 -276
  105. package/notes-app/src/pages/LoginPage.test.tsx +0 -29
  106. package/stacks/django-vue.yaml +0 -33
  107. package/stacks/fastapi-react.yaml +0 -160
  108. package/stacks/flutter-firebase.yaml +0 -58
  109. package/stacks/nextjs-prisma.yaml +0 -33
  110. package/stacks/schema.json +0 -144
  111. package/templates/agents/architect.hbs +0 -183
  112. package/templates/agents/auto-documenter.hbs +0 -36
  113. package/templates/agents/backend-developer.hbs +0 -175
  114. package/templates/agents/code-reviewer.hbs +0 -29
  115. package/templates/agents/database-developer.hbs +0 -52
  116. package/templates/agents/debug-specialist.hbs +0 -39
  117. package/templates/agents/environment-setup.hbs +0 -41
  118. package/templates/agents/frontend-developer.hbs +0 -45
  119. package/templates/agents/integration-qa.hbs +0 -26
  120. package/templates/agents/performance-qa.hbs +0 -24
  121. package/templates/agents/pr-writer.hbs +0 -53
  122. package/templates/agents/quality-lead.hbs +0 -26
  123. package/templates/agents/requirements-analyst.hbs +0 -26
  124. package/templates/agents/security-analyst.hbs +0 -21
  125. package/templates/agents/security-reviewer.hbs +0 -20
  126. package/templates/agents/ssot-updater.hbs +0 -45
  127. package/templates/agents/technical-writer.hbs +0 -28
  128. package/templates/agents/unit-test-engineer.hbs +0 -19
  129. package/templates/agents/user-clone.hbs +0 -43
  130. package/templates/github-actions/aws/deploy-notes.yml.hbs +0 -117
  131. package/templates/github-actions/azure/deploy-notes.yml.hbs +0 -78
  132. package/templates/github-actions/gcp/deploy-notes.yml.hbs +0 -76
  133. package/templates/github-actions/vercel-railway/deploy-notes.yml.hbs +0 -49
  134. package/templates/mindsets/agent-stdio.hbs +0 -51
  135. package/templates/mindsets/dart.hbs +0 -39
  136. package/templates/mindsets/ddd-clean-architecture.hbs +0 -52
  137. package/templates/mindsets/electron.hbs +0 -41
  138. package/templates/mindsets/fastapi.hbs +0 -40
  139. package/templates/mindsets/flutter.hbs +0 -56
  140. package/templates/mindsets/kotlin.hbs +0 -46
  141. package/templates/mindsets/postgresql.hbs +0 -39
  142. package/templates/mindsets/python.hbs +0 -39
  143. package/templates/mindsets/react.hbs +0 -51
  144. package/templates/mindsets/swift.hbs +0 -46
  145. package/templates/mindsets/terraform.hbs +0 -53
  146. package/templates/mindsets/typescript.hbs +0 -34
  147. package/templates/mindsets/vite.hbs +0 -37
  148. package/templates/notes-compose.yml +0 -82
  149. package/templates/partials/cogito-geo.hbs +0 -84
  150. package/templates/partials/cogito-godd.hbs +0 -22
  151. package/templates/partials/cogito-grammar.hbs +0 -105
  152. package/templates/partials/cogito-particle.hbs +0 -76
  153. package/templates/partials/cogito-root-ai.hbs +0 -79
  154. package/templates/partials/cogito-root-arch.hbs +0 -75
  155. package/templates/partials/cogito-root-core.hbs +0 -75
  156. package/templates/partials/cogito-root-daily.hbs +0 -58
  157. package/templates/partials/cogito-root-dev.hbs +0 -71
  158. package/templates/partials/cogito-root-devops.hbs +0 -71
  159. package/templates/partials/cogito-root-framework.hbs +0 -80
  160. package/templates/partials/cogito-root-lang.hbs +0 -74
  161. package/templates/partials/godd-core.hbs +0 -50
  162. package/templates/partials/project-context.hbs +0 -52
  163. package/templates/partials/ssot-header.hbs +0 -40
  164. package/templates/partials/ssot-rules.hbs +0 -30
  165. package/templates/prompts/adr.hbs +0 -39
  166. package/templates/prompts/agent-dev-workflow.hbs +0 -34
  167. package/templates/prompts/analyze-report.hbs +0 -36
  168. package/templates/prompts/auto-documentation.hbs +0 -37
  169. package/templates/prompts/check.hbs +0 -52
  170. package/templates/prompts/commit.hbs +0 -96
  171. package/templates/prompts/dev.hbs +0 -127
  172. package/templates/prompts/docs-init.hbs +0 -101
  173. package/templates/prompts/docs-update.hbs +0 -51
  174. package/templates/prompts/git-workflow.hbs +0 -125
  175. package/templates/prompts/impact-analysis.hbs +0 -43
  176. package/templates/prompts/install.hbs +0 -40
  177. package/templates/prompts/new-branch.hbs +0 -61
  178. package/templates/prompts/notes-deploy.hbs +0 -138
  179. package/templates/prompts/pr-analyze.hbs +0 -44
  180. package/templates/prompts/pr-create.hbs +0 -125
  181. package/templates/prompts/push-execute.hbs +0 -83
  182. package/templates/prompts/push.hbs +0 -24
  183. package/templates/prompts/release-notes.hbs +0 -38
  184. package/templates/prompts/requirements-to-business-flow.hbs +0 -29
  185. package/templates/prompts/requirements-to-tickets.hbs +0 -26
  186. package/templates/prompts/review.hbs +0 -126
  187. package/templates/prompts/setup.hbs +0 -247
  188. package/templates/prompts/spec.hbs +0 -35
  189. package/templates/prompts/specification-to-tickets.hbs +0 -24
  190. package/templates/prompts/submit.hbs +0 -143
  191. package/templates/prompts/sync.hbs +0 -63
  192. package/templates/prompts/test-plan.hbs +0 -56
  193. package/templates/scripts/aws/terraform-backend-setup.sh.hbs +0 -149
  194. package/templates/terraform/aws/alb.tf.hbs +0 -58
  195. package/templates/terraform/aws/backend.tf.hbs +0 -10
  196. package/templates/terraform/aws/cloudfront.tf.hbs +0 -96
  197. package/templates/terraform/aws/ecr.tf.hbs +0 -30
  198. package/templates/terraform/aws/ecs.tf.hbs +0 -142
  199. package/templates/terraform/aws/iam.tf.hbs +0 -88
  200. package/templates/terraform/aws/local.tf.hbs +0 -34
  201. package/templates/terraform/aws/output.tf.hbs +0 -49
  202. package/templates/terraform/aws/provider.tf.hbs +0 -26
  203. package/templates/terraform/aws/rds.tf.hbs +0 -38
  204. package/templates/terraform/aws/s3.tf.hbs +0 -34
  205. package/templates/terraform/aws/secrets.tf.hbs +0 -53
  206. package/templates/terraform/aws/security_groups.tf.hbs +0 -81
  207. package/templates/terraform/aws/vpc.tf.hbs +0 -63
  208. package/templates/terraform/azure/backend.tf.hbs +0 -8
  209. package/templates/terraform/azure/iam.tf.hbs +0 -36
  210. package/templates/terraform/azure/main.tf.hbs +0 -203
  211. package/templates/terraform/azure/output.tf.hbs +0 -19
  212. package/templates/terraform/azure/provider.tf.hbs +0 -19
  213. package/templates/terraform/gcp/backend.tf.hbs +0 -6
  214. package/templates/terraform/gcp/iam.tf.hbs +0 -47
  215. package/templates/terraform/gcp/main.tf.hbs +0 -175
  216. package/templates/terraform/gcp/output.tf.hbs +0 -15
  217. package/templates/terraform/gcp/provider.tf.hbs +0 -19
  218. package/templates/terraform/vercel-railway/main.tf.hbs +0 -64
  219. package/templates/terraform/vercel-railway/output.tf.hbs +0 -11
  220. /package/{notes-api → notes/api}/.dockerignore +0 -0
  221. /package/{notes-api → notes/api}/alembic/README +0 -0
  222. /package/{notes-api → notes/api}/alembic/env.py +0 -0
  223. /package/{notes-api → notes/api}/alembic/script.py.mako +0 -0
  224. /package/{notes-api → notes/api}/alembic/versions/001_initial_notes_tables.py +0 -0
  225. /package/{notes-api → notes/api}/alembic/versions/002_add_performance_indexes.py +0 -0
  226. /package/{notes-api → notes/api}/alembic/versions/003_add_yjs_documents.py +0 -0
  227. /package/{notes-api → notes/api}/alembic/versions/004_add_comments.py +0 -0
  228. /package/{notes-api → notes/api}/alembic/versions/005_add_github_username.py +0 -0
  229. /package/{notes-api → notes/api}/alembic/versions/006_add_check_constraints.py +0 -0
  230. /package/{notes-api → notes/api}/alembic.ini +0 -0
  231. /package/{notes-api → notes/api}/app/__init__.py +0 -0
  232. /package/{notes-api → notes/api}/app/config.py +0 -0
  233. /package/{notes-api → notes/api}/app/database.py +0 -0
  234. /package/{notes-api → notes/api}/app/http_client.py +0 -0
  235. /package/{notes-api → notes/api}/app/models/__init__.py +0 -0
  236. /package/{notes-api → notes/api}/app/models/audit.py +0 -0
  237. /package/{notes-api → notes/api}/app/models/base.py +0 -0
  238. /package/{notes-api → notes/api}/app/models/collab.py +0 -0
  239. /package/{notes-api → notes/api}/app/models/comment.py +0 -0
  240. /package/{notes-api → notes/api}/app/models/session.py +0 -0
  241. /package/{notes-api → notes/api}/app/models/setting.py +0 -0
  242. /package/{notes-api → notes/api}/app/models/user.py +0 -0
  243. /package/{notes-api → notes/api}/app/path_validation.py +0 -0
  244. /package/{notes-api → notes/api}/app/routers/__init__.py +0 -0
  245. /package/{notes-api → notes/api}/app/routers/collab.py +0 -0
  246. /package/{notes-api → notes/api}/app/routers/comments.py +0 -0
  247. /package/{notes-api → notes/api}/app/routers/files.py +0 -0
  248. /package/{notes-api → notes/api}/app/routers/settings.py +0 -0
  249. /package/{notes-api → notes/api}/app/routers/tree.py +0 -0
  250. /package/{notes-api → notes/api}/app/routers/upload.py +0 -0
  251. /package/{notes-api → notes/api}/app/routers/users.py +0 -0
  252. /package/{notes-api → notes/api}/app/schemas/__init__.py +0 -0
  253. /package/{notes-api → notes/api}/app/schemas/auth.py +0 -0
  254. /package/{notes-api → notes/api}/app/schemas/user.py +0 -0
  255. /package/{notes-api → notes/api}/app/security.py +0 -0
  256. /package/{notes-api → notes/api}/app/services/__init__.py +0 -0
  257. /package/{notes-api → notes/api}/app/services/audit.py +0 -0
  258. /package/{notes-api → notes/api}/app/services/business_date.py +0 -0
  259. /package/{notes-api → notes/api}/app/services/collab.py +0 -0
  260. /package/{notes-api → notes/api}/app/services/github.py +0 -0
  261. /package/{notes-api → notes/api}/app/services/pr_chain.py +0 -0
  262. /package/{notes-api → notes/api}/app/startup.py +0 -0
  263. /package/{notes-api → notes/api}/docker/Dockerfile +0 -0
  264. /package/{notes-api → notes/api}/docker/Dockerfile.test +0 -0
  265. /package/{notes-api → notes/api}/pyproject.toml +0 -0
  266. /package/{notes-api → notes/api}/tests/conftest.py +0 -0
  267. /package/{notes-api → notes/api}/tests/test_audit.py +0 -0
  268. /package/{notes-api → notes/api}/tests/test_auth.py +0 -0
  269. /package/{notes-api → notes/api}/tests/test_business_date.py +0 -0
  270. /package/{notes-api → notes/api}/tests/test_collab.py +0 -0
  271. /package/{notes-api → notes/api}/tests/test_comments.py +0 -0
  272. /package/{notes-api → notes/api}/tests/test_config_ssl.py +0 -0
  273. /package/{notes-api → notes/api}/tests/test_config_warnings.py +0 -0
  274. /package/{notes-api → notes/api}/tests/test_files.py +0 -0
  275. /package/{notes-api → notes/api}/tests/test_path_validation.py +0 -0
  276. /package/{notes-api → notes/api}/tests/test_security.py +0 -0
  277. /package/{notes-api → notes/api}/tests/test_settings.py +0 -0
  278. /package/{notes-api → notes/api}/tests/test_tree.py +0 -0
  279. /package/{notes-api → notes/api}/tests/test_upload.py +0 -0
  280. /package/{notes-api → notes/api}/tests/test_users.py +0 -0
  281. /package/{notes-app → notes/app}/.dockerignore +0 -0
  282. /package/{notes-app → notes/app}/index.html +0 -0
  283. /package/{notes-app → notes/app}/nginx.conf +0 -0
  284. /package/{notes-app → notes/app}/package-lock.json +0 -0
  285. /package/{notes-app → notes/app}/playwright.config.ts +0 -0
  286. /package/{notes-app → notes/app}/pnpm-lock.yaml +0 -0
  287. /package/{notes-app → notes/app}/src/App.tsx +0 -0
  288. /package/{notes-app → notes/app}/src/components/BranchSelectorModal.tsx +0 -0
  289. /package/{notes-app → notes/app}/src/components/CodeBlockView.test.tsx +0 -0
  290. /package/{notes-app → notes/app}/src/components/CodeBlockView.tsx +0 -0
  291. /package/{notes-app → notes/app}/src/components/CollabStatus.tsx +0 -0
  292. /package/{notes-app → notes/app}/src/components/DiffPreview.tsx +0 -0
  293. /package/{notes-app → notes/app}/src/components/DrawioEditor.tsx +0 -0
  294. /package/{notes-app → notes/app}/src/components/DrawioViewer.tsx +0 -0
  295. /package/{notes-app → notes/app}/src/components/ErrorBoundary.test.tsx +0 -0
  296. /package/{notes-app → notes/app}/src/components/ErrorBoundary.tsx +0 -0
  297. /package/{notes-app → notes/app}/src/components/FileContentView.tsx +0 -0
  298. /package/{notes-app → notes/app}/src/components/FileContextMenu.test.tsx +0 -0
  299. /package/{notes-app → notes/app}/src/components/FileContextMenu.tsx +0 -0
  300. /package/{notes-app → notes/app}/src/components/FileDialogs.test.tsx +0 -0
  301. /package/{notes-app → notes/app}/src/components/FileDialogs.tsx +0 -0
  302. /package/{notes-app → notes/app}/src/components/SaveStatusIndicator.test.tsx +0 -0
  303. /package/{notes-app → notes/app}/src/components/SaveStatusIndicator.tsx +0 -0
  304. /package/{notes-app → notes/app}/src/components/Skeleton.tsx +0 -0
  305. /package/{notes-app → notes/app}/src/components/SpreadsheetEditor.test.tsx +0 -0
  306. /package/{notes-app → notes/app}/src/components/SpreadsheetEditor.tsx +0 -0
  307. /package/{notes-app → notes/app}/src/components/TextEditor.tsx +0 -0
  308. /package/{notes-app → notes/app}/src/components/ToastContainer.tsx +0 -0
  309. /package/{notes-app → notes/app}/src/components/TreeNode.tsx +0 -0
  310. /package/{notes-app → notes/app}/src/contexts/AuthContext.test.tsx +0 -0
  311. /package/{notes-app → notes/app}/src/contexts/AuthContext.tsx +0 -0
  312. /package/{notes-app → notes/app}/src/contexts/ToastContext.test.ts +0 -0
  313. /package/{notes-app → notes/app}/src/contexts/ToastContext.tsx +0 -0
  314. /package/{notes-app → notes/app}/src/hooks/useAutoSave.test.ts +0 -0
  315. /package/{notes-app → notes/app}/src/hooks/useAutoSave.ts +0 -0
  316. /package/{notes-app → notes/app}/src/hooks/useCollaboration.ts +0 -0
  317. /package/{notes-app → notes/app}/src/hooks/useComments.ts +0 -0
  318. /package/{notes-app → notes/app}/src/hooks/useYText.ts +0 -0
  319. /package/{notes-app → notes/app}/src/lib/branch-diff.test.ts +0 -0
  320. /package/{notes-app → notes/app}/src/lib/branch-diff.ts +0 -0
  321. /package/{notes-app → notes/app}/src/lib/created-file.test.ts +0 -0
  322. /package/{notes-app → notes/app}/src/lib/created-file.ts +0 -0
  323. /package/{notes-app → notes/app}/src/lib/csv-utils.test.ts +0 -0
  324. /package/{notes-app → notes/app}/src/lib/csv-utils.ts +0 -0
  325. /package/{notes-app → notes/app}/src/lib/deepLinkPathToSearch.test.ts +0 -0
  326. /package/{notes-app → notes/app}/src/lib/deepLinkPathToSearch.ts +0 -0
  327. /package/{notes-app → notes/app}/src/lib/draft-storage.test.ts +0 -0
  328. /package/{notes-app → notes/app}/src/lib/draft-storage.ts +0 -0
  329. /package/{notes-app → notes/app}/src/lib/mermaid-render.ts +0 -0
  330. /package/{notes-app → notes/app}/src/lib/postLoginRedirect.test.ts +0 -0
  331. /package/{notes-app → notes/app}/src/lib/postLoginRedirect.ts +0 -0
  332. /package/{notes-app → notes/app}/src/lib/tree-utils.ts +0 -0
  333. /package/{notes-app → notes/app}/src/lib/user-colors.ts +0 -0
  334. /package/{notes-app → notes/app}/src/lib/xlsx-utils.test.ts +0 -0
  335. /package/{notes-app → notes/app}/src/lib/xlsx-utils.ts +0 -0
  336. /package/{notes-app → notes/app}/src/main.tsx +0 -0
  337. /package/{notes-app → notes/app}/src/pages/LoginPage.tsx +0 -0
  338. /package/{notes-app → notes/app}/src/pages/MainPage.insertChildEntry.test.ts +0 -0
  339. /package/{notes-app → notes/app}/src/pages/SettingsPage.tsx +0 -0
  340. /package/{notes-app → notes/app}/src/pages/UserManagementPage.tsx +0 -0
  341. /package/{notes-app → notes/app}/src/styles/globals.css +0 -0
  342. /package/{notes-app → notes/app}/src/types.ts +0 -0
  343. /package/{notes-app → notes/app}/src/vite-env.d.ts +0 -0
  344. /package/{notes-app → notes/app}/tsconfig.json +0 -0
  345. /package/{notes-app → notes/app}/tsconfig.node.json +0 -0
  346. /package/{notes-app → notes/app}/vite.config.js +0 -0
  347. /package/{notes-app → notes/app}/vite.config.ts +0 -0
  348. /package/{notes-app → notes/app}/vitest.config.ts +0 -0
@@ -1,58 +0,0 @@
1
- name: "Flutter + Firebase"
2
- description: "Flutter (Dart) モバイル/Web アプリ + Firebase (BaaS) バックエンド構成"
3
-
4
- stacks:
5
- - id: mobile
6
- label: "モバイル/Web(Flutter + Dart)"
7
- name: "Flutter + Dart"
8
- mindset_template: "flutter-dart"
9
- - id: backend
10
- label: "バックエンド(Firebase BaaS)"
11
- name: "Firebase"
12
- mindset_template: "firebase"
13
-
14
- frontend:
15
- name: "Flutter + Dart"
16
- root_dir: "."
17
- build_command: "flutter build"
18
- package_manager: "pub"
19
- mindset_template: "flutter-dart"
20
-
21
- quality_gate:
22
- frontend: "flutter analyze && flutter test"
23
- preflight_command: "flutter doctor"
24
- summary: "Flutter analyze + test"
25
-
26
- tools:
27
- - id: "flutter"
28
- label: "Flutter"
29
- category: "frontend"
30
- description: "クロスプラットフォーム UI フレームワーク(Dart)"
31
- url: "https://flutter.dev/"
32
- guidance: "flutter create でプロジェクト生成。flutter run -d <device> でデバッグ起動"
33
- - id: "dart"
34
- label: "Dart"
35
- category: "frontend"
36
- description: "Flutter の基盤言語。null安全・AOTコンパイル対応"
37
- url: "https://dart.dev/"
38
- guidance: "dart analyze で静的解析。dart fix --apply で自動修正"
39
- - id: "firebase-cli"
40
- label: "Firebase CLI"
41
- category: "infra"
42
- description: "Firebase プロジェクト管理・デプロイツール"
43
- url: "https://firebase.google.com/docs/cli"
44
- guidance: "firebase init で初期化。firebase deploy でデプロイ"
45
- - id: "riverpod"
46
- label: "Riverpod"
47
- category: "frontend"
48
- description: "Flutter 状態管理ライブラリ(型安全・テスタブル)"
49
- url: "https://riverpod.dev/"
50
- guidance: "Provider はグローバル定数として定義。ref.watch / ref.read を使い分ける"
51
- - id: "freezed"
52
- label: "Freezed"
53
- category: "frontend"
54
- description: "Dart イミュータブルデータクラス / Union 型コード生成"
55
- url: "https://pub.dev/packages/freezed"
56
- guidance: "build_runner と併用。@freezed アノテーションでイミュータブルモデルを生成"
57
-
58
- vendor: []
@@ -1,33 +0,0 @@
1
- name: "Next.js + Prisma"
2
- description: "Next.js (TypeScript/App Router) フロントエンド + Prisma (Node.js) バックエンド構成"
3
-
4
- stacks:
5
- - id: frontend
6
- label: "フロント(Next.js + TypeScript)"
7
- name: "Next.js + TypeScript"
8
- mindset_template: "react-vite-ts"
9
- - id: backend
10
- label: "バックエンド(Prisma + Node.js)"
11
- name: "Prisma + Node.js"
12
- mindset_template: "fastapi-postgres-ddd"
13
-
14
- frontend:
15
- name: "Next.js + TypeScript"
16
- root_dir: "src"
17
- build_command: "pnpm build"
18
- package_manager: "pnpm"
19
- mindset_template: "react-vite-ts"
20
-
21
- backend:
22
- name: "Prisma + Node.js"
23
- root_dir: "src"
24
- architecture: "Clean Architecture"
25
- dependency_direction: "Domain → Application → Infrastructure → Presentation"
26
- package_manager: "pnpm"
27
- mindset_template: "fastapi-postgres-ddd"
28
-
29
- quality_gate:
30
- frontend: "docker compose --profile test run --rm frontend-test"
31
- backend: "docker compose --profile test run --rm backend-test"
32
- preflight_command: "pnpm preflight"
33
- summary: "Docker 完全環境: lint/typecheck/prisma/test/build (all in containers)"
@@ -1,144 +0,0 @@
1
- {
2
- "$schema": "http://json-schema.org/draft-07/schema#",
3
- "title": "GoDD Stack Profile",
4
- "description": "テックスタックプロファイル定義。テンプレートの変数に値をバインドする。",
5
- "type": "object",
6
- "required": ["name", "stacks"],
7
- "properties": {
8
- "name": {
9
- "type": "string",
10
- "description": "スタックプロファイルの表示名"
11
- },
12
- "description": {
13
- "type": "string",
14
- "description": "スタックプロファイルの説明"
15
- },
16
- "stacks": {
17
- "type": "array",
18
- "description": "このプロファイルに含まれるテックスタック一覧",
19
- "items": {
20
- "type": "object",
21
- "required": ["id", "label", "name"],
22
- "properties": {
23
- "id": {
24
- "type": "string",
25
- "description": "スタックの内部識別子(例: frontend, backend)"
26
- },
27
- "label": {
28
- "type": "string",
29
- "description": "表示用ラベル"
30
- },
31
- "name": {
32
- "type": "string",
33
- "description": "技術名"
34
- },
35
- "mindset_template": {
36
- "type": "string",
37
- "description": "使用するmindsetテンプレートファイル名"
38
- }
39
- }
40
- }
41
- },
42
- "frontend": {
43
- "type": "object",
44
- "description": "フロントエンド固有の設定",
45
- "properties": {
46
- "name": { "type": "string" },
47
- "root_dir": { "type": "string", "default": "frontend" },
48
- "build_command": { "type": "string" },
49
- "package_manager": { "type": "string", "default": "pnpm" },
50
- "mindset_template": { "type": "string" }
51
- }
52
- },
53
- "backend": {
54
- "type": "object",
55
- "description": "バックエンド固有の設定",
56
- "properties": {
57
- "name": { "type": "string" },
58
- "root_dir": { "type": "string", "default": "backend" },
59
- "architecture": { "type": "string" },
60
- "dependency_direction": { "type": "string" },
61
- "package_manager": { "type": "string" },
62
- "mindset_template": { "type": "string" }
63
- }
64
- },
65
- "quality_gate": {
66
- "type": "object",
67
- "description": "品質ゲートコマンド",
68
- "properties": {
69
- "frontend": { "type": "string" },
70
- "backend": { "type": "string" },
71
- "preflight_command": { "type": "string", "default": "pnpm preflight" },
72
- "summary": { "type": "string" }
73
- }
74
- },
75
- "tools": {
76
- "type": "array",
77
- "description": "エコシステムツール定義(ガイダンス付き)",
78
- "items": {
79
- "type": "object",
80
- "required": ["id", "label", "category", "description"],
81
- "properties": {
82
- "id": {
83
- "type": "string",
84
- "description": "ツール識別子(例: orval, ruff, playwright)"
85
- },
86
- "label": {
87
- "type": "string",
88
- "description": "表示名"
89
- },
90
- "category": {
91
- "type": "string",
92
- "enum": ["frontend", "backend", "testing", "infra", "devtool", "monitoring"],
93
- "description": "カテゴリ"
94
- },
95
- "description": {
96
- "type": "string",
97
- "description": "ツールの説明"
98
- },
99
- "url": {
100
- "type": "string",
101
- "description": "ドキュメントURL"
102
- },
103
- "guidance": {
104
- "type": "string",
105
- "description": "プロンプトに注入される利用ガイダンス"
106
- }
107
- }
108
- }
109
- },
110
- "vendor": {
111
- "type": "array",
112
- "description": "Vendor/OSSサブモジュール定義",
113
- "items": {
114
- "type": "object",
115
- "required": ["name", "description"],
116
- "properties": {
117
- "name": {
118
- "type": "string",
119
- "description": "vendor ディレクトリ名(例: browser-use)"
120
- },
121
- "description": {
122
- "type": "string",
123
- "description": "ツールの説明"
124
- },
125
- "runtime": {
126
- "type": "string",
127
- "enum": ["python", "node", "unknown"],
128
- "default": "unknown",
129
- "description": "ランタイム環境"
130
- },
131
- "setup_hint": {
132
- "type": "string",
133
- "description": "セットアップコマンド"
134
- },
135
- "enabled": {
136
- "type": "boolean",
137
- "default": true,
138
- "description": "有効/無効制御"
139
- }
140
- }
141
- }
142
- }
143
- }
144
- }
@@ -1,183 +0,0 @@
1
- {{> ssot-header }}
2
-
3
- {{> godd-core }}
4
-
5
- {{> ssot-rules }}
6
-
7
- {{> project-context }}
8
-
9
- {{> cogito-grammar }}
10
- {{> cogito-root-core }}
11
- {{> cogito-particle }}
12
- {{> cogito-godd }}
13
- {{> cogito-root-dev }}
14
-
15
- ## Routing Guide
16
-
17
- - Auto-activation: Keywords=architecture/design/decomposition/impact analysis/technology selection, Situation=cross-domain decisions/policy formulation, Complexity=2+ directories/3+ files/multiple components
18
- - Success criteria: Actionable design decisions (with alternatives/constraints/risks) presented, impact scope is clear
19
- - Best combination: `requirements-analyst`(requirements clarification) + implementation agents(`frontend/backend/database`) + `security-reviewer`(high risk) + `quality-lead`(quality gate)
20
- - Recommended MCP: `serena`(impact analysis/reference tracking) / `context7`(official patterns) / `markitdown`+`vibe-pdf-read`+`ocr`(PDF to MD)
21
-
22
- # Role
23
-
24
- As a Solution Architect, perform technical design with emphasis on extensibility and maintainability.
25
- Propose optimal architecture for the project's tech stack and translate it into an implementable form.
26
-
27
- ## Development Approach (Spec-Driven Development)
28
-
29
- This project maintains DDD while transitioning to **Spec-Driven Development**.
30
-
31
- - Purpose: Treat specs as the Single Source of Truth (SSOT) and synchronize implementation/tests/reviews with specs
32
- - Policy:
33
- - Define UI/UX, API, data model specs at "implementable granularity" first; feed back diffs to specs
34
- - Implementation follows specs (if specs are missing/ambiguous, propose spec completion first)
35
- - Continue to follow DDD dependency direction ({{backend.dependency_direction}})
36
- - Never omit specs for implementation convenience (instead, split specs into smaller pieces)
37
-
38
- ## Pre-Work Preparation
39
-
40
- Before starting work, read and understand the `AGENTS.md` at the project root and all files it references.
41
- In particular, understand and strictly follow the principles, guidelines, and restrictions in the following files.
42
-
43
- - AGENTS.md
44
- - .instruction/00_universal/thinking.md
45
- - .instruction/00_universal/quality.md
46
- - .instruction/00_universal/communication.md
47
- - .instruction/02_project/development.md
48
- - .instruction/02_project/architecture.md
49
- - .instruction/02_project/domain.md
50
- - .instruction/02_project/patterns.md
51
- - .instruction/01_specialties/planning.md
52
- - .instruction/01_specialties/design.md
53
- - .instruction/01_specialties/consultation.md
54
- - docs/003_requirements/spec/README.md
55
- - docs/003_requirements/api.template.md
56
- - docs/003_requirements/ui.template.md
57
- - docs/003_requirements/db.template.md
58
-
59
- ## Expertise
60
-
61
- ### Frontend Technology
62
-
63
- - Electron + Vite + React
64
- - TypeScript (strict)
65
- - Tailwind CSS + Radix UI (shadcn/ui approach)
66
- - Screen data fetching: REST + Axios
67
-
68
- ### Backend Technology
69
-
70
- - FastAPI (Presentation layer)
71
- - Clean Architecture / DDD ({{backend.dependency_direction}})
72
- - SQLAlchemy(async) + Postgres + Alembic
73
- - API Design: REST
74
-
75
- ### Architecture Patterns
76
-
77
- - Clean Architecture
78
- - Domain-Driven Design (DDD)
79
- - Microservices vs Monolith
80
- - Event-Driven Architecture
81
- - CQRS (Command Query Responsibility Segregation)
82
-
83
- ### DevOps
84
-
85
- - CI/CD Pipelines
86
- - Containerization (Docker)
87
- - Monitoring & Logging
88
- - Scalability Strategies
89
-
90
- ## Implementation Tasks
91
-
92
- ### 1. Technology Selection & Evaluation
93
-
94
- - Appropriate technology stack selection
95
- - Compatibility verification with existing technologies
96
- - Learning cost and ROI evaluation
97
- - Vendor lock-in avoidance
98
- - Technical debt minimization
99
-
100
- ### 2. System Design
101
-
102
- - Component design
103
- - Data flow design
104
- - API design (REST)
105
- - State management design
106
- - Error handling policy
107
- - Cache strategy
108
-
109
- ### 3. Impact Analysis
110
-
111
- - Impact on existing features
112
- - Impact on data models
113
- - Performance impact
114
- - Security impact
115
- - Operations impact
116
- - Cost impact
117
-
118
- ### 4. Extensibility & Maintainability
119
-
120
- - Modularization strategy
121
- - Loosely coupled design
122
- - Testability assurance
123
- - Documentation policy
124
- - Versioning strategy
125
- - Backward compatibility maintenance
126
-
127
- ### 5. Non-Functional Requirements Policy
128
-
129
- - Performance (response time, throughput)
130
- - Availability (SLA, disaster recovery)
131
- - Scalability (horizontal/vertical scaling)
132
- - Security (authentication, authorization, encryption)
133
- - Maintainability (logging, monitoring, debugging)
134
-
135
- ## Deliverable Format
136
-
137
- Design results should be **output in Markdown by default** (prioritizing reviewability and maintainability).
138
- Structured JSON may be included alongside only when needed for machine processing/automation.
139
-
140
- ## Best Practices
141
-
142
- ### Design Principles
143
-
144
- 1. **SOLID Principles**
145
- 2. **DRY (Don't Repeat Yourself)**
146
- 3. **KISS (Keep It Simple, Stupid)**
147
- 4. **YAGNI (You Aren't Gonna Need It)**
148
-
149
- ### Performance Optimization
150
-
151
- - Rendering optimization (React.memo, useMemo, useCallback)
152
- - Bundle size optimization (Code Splitting, Tree Shaking)
153
- - Image optimization (WebP/AVIF, lazy loading)
154
- - Data fetching optimization
155
- - Caching (CDN, browser cache)
156
-
157
- ### Security Considerations
158
-
159
- - Principle of least privilege
160
- - Defense in Depth
161
- - Secure coding
162
- - Regular security audits
163
- - Vulnerability management
164
-
165
- ## Important Notes
166
-
167
- ### GitHub CI/CD Configuration Edit Prohibition
168
-
169
- - **GitHub Workflows**: Creating/editing/adding YAML files in `.github/workflows/` is **absolutely prohibited**
170
- - **GitHub Actions**: Creating/editing custom action definitions in `.github/actions/` is **absolutely prohibited**
171
- - **CI-related configuration files**: Editing `action.yml`, `action.yaml`, `.github/dependabot.yml` is **absolutely prohibited**
172
- - **GitHub CLI CI operations**: Running `gh workflow`, `gh run` and other CI operations is **absolutely prohibited**
173
- - **npm scripts**: Changes to `package.json` scripts used by CI/CD should be done carefully
174
- - **Test automation**: Limited to local environment scripts only
175
- - **Exception conditions**: CI/CD work is only allowed when the user explicitly instructs it
176
-
177
- ### Other Considerations
178
-
179
- - Avoid premature optimization
180
- - Base technology selection on requirements
181
- - Prioritize consistency with existing systems
182
- - Prioritize long-term maintainability
183
- - Keep documentation up to date
@@ -1,36 +0,0 @@
1
- {{> ssot-header }}
2
-
3
- {{> godd-core }}
4
-
5
- {{> ssot-rules }}
6
-
7
- {{> project-context }}
8
-
9
- {{> cogito-grammar }}
10
- {{> cogito-root-core }}
11
- {{> cogito-particle }}
12
- {{> cogito-godd }}
13
- {{> cogito-root-dev }}
14
-
15
- # Role (SSOT)
16
-
17
- - **Specifications (Spec)**: `docs/003_requirements/spec/` (.md)
18
- - **Operational templates**: `docs/006_development_workflow/` (.md)
19
- - **Configuration descriptions**: `docs/007_guides/mcp.md` (descriptions for yaml/json)
20
- - **Tech stack**: `docs/007_guides/tech-stack.md`
21
- - **Rules/Entry**: `AGENTS.md` / `docs/README.md`
22
-
23
- ## When to Use (Auto-Activation)
24
-
25
- - When changes affect:
26
- - API/DB/UI/Flow (Spec update needed)
27
- - Startup procedures/Environment variables (README update needed)
28
- - yaml/json (Configuration catalog update needed)
29
- - Dependency additions/updates (tech-stack update needed)
30
-
31
- ## Policy (MUST)
32
-
33
- - Write specs, policies, procedures, templates in **.md** (SSOT)
34
- - yaml/json is **read by machines**. Descriptions go alongside in `.md`
35
- - Don't create broken references (verify paths/links with a final grep)
36
- - If tests are executable, **keep improving until API/E2E tests pass** (if not executable, document reason/alternatives/remaining risks)
@@ -1,175 +0,0 @@
1
- {{> ssot-header }}
2
-
3
- {{> godd-core }}
4
-
5
- {{> ssot-rules }}
6
-
7
- {{> project-context }}
8
-
9
- {{> cogito-grammar }}
10
- {{> cogito-root-core }}
11
- {{> cogito-particle }}
12
- {{> cogito-godd }}
13
- {{> cogito-root-dev }}
14
-
15
- ## Routing Guide
16
-
17
- - Auto-activation: Keywords=backend/REST/API/FastAPI/schema/Pydantic/SQLAlchemy/DB/migration/Alembic/DDD/usecase/repository/test/pytest/API test/authorization, Situation=spec additions or behavior changes needed, Complexity=2+ layer changes/3+ file changes/DB changes
18
- - Success criteria: Type safety, error handling, performance (query optimization/unnecessary round trips) met, with test/verification perspective
19
- - Best combination: `database-developer`(schema/migration) + `security-analyst`(input/authorization) + `unit-test-engineer`(test additions) + `integration-qa`(flow verification)
20
- - Recommended MCP: `serena`(reference tracking/safe editing) / `context7`(library official methods)
21
-
22
- # Role
23
-
24
- As a Senior Backend Engineer, implement additions and modifications to `{{backend.root_dir}}` (**including API endpoint changes, data processing changes, and API test changes**).
25
- Based on Spec-Driven Development, implement readable and maintainable code while following DDD/Clean Architecture dependency direction ({{backend.dependency_direction}}).
26
-
27
- **Operational Rules**:
28
- - Use this agent **PROACTIVELY** for backend features/data processing/API endpoints
29
- - **Even for a 1-line API test change or backend fix**, delegate to this agent if design decisions/impact confirmation is needed
30
-
31
- ## Development Approach (Spec-Driven Development)
32
-
33
- This project maintains DDD while transitioning to **Spec-Driven Development**.
34
-
35
- - Purpose: Treat specs as the Single Source of Truth (SSOT) and synchronize implementation/tests/reviews with specs
36
- - Policy:
37
- - Define API specs (endpoints, I/O, errors, state transitions, constraints, compatibility) at "implementable granularity" first
38
- - If specs are ambiguous, clarify through questions/proposals before implementing
39
- - Feed implementation diffs back to specs, keeping implementation and specs in sync
40
- - Never fill spec gaps for implementation convenience (propose spec additions/modifications instead)
41
-
42
- ## Pre-Work Preparation
43
-
44
- Before starting work, read and understand the `AGENTS.md` at the project root and all files it references.
45
-
46
- - AGENTS.md
47
- - .instruction/00_universal/thinking.md
48
- - .instruction/00_universal/quality.md
49
- - .instruction/00_universal/communication.md
50
- - .instruction/02_project/development.md
51
- - .instruction/02_project/architecture.md
52
- - .instruction/02_project/domain.md
53
- - .instruction/02_project/patterns.md
54
- - docs/003_requirements/spec/README.md
55
- - docs/003_requirements/api.template.md
56
- - docs/003_requirements/db.template.md
57
-
58
- Reference implementation: `{{backend.root_dir}}/**`
59
-
60
- ## Expertise
61
-
62
- ### FastAPI / Pydantic
63
-
64
- - Keep the Presentation layer "thin" (just call Usecases)
65
- - Use Pydantic for I/O schemas, maintaining type consistency
66
- - Unify HTTP exceptions with FastAPI's `HTTPException`, avoid swallowing exceptions
67
-
68
- ### DDD / Clean Architecture
69
-
70
- - Domain: Entities/Value Objects/Domain Services/Repository Interfaces
71
- - Usecase: Use cases (input→output, transaction boundaries)
72
- - Infrastructure: DB/External I/O/Implementation details
73
- - Presentation: API (routing/I/O formatting)
74
-
75
- ### DB / Migration (Postgres + Alembic)
76
-
77
- - Use SQLAlchemy(async) and confine IO boundaries to Infrastructure
78
- - When schema changes are needed, use Alembic and document migration steps and backward compatibility
79
-
80
- ### Logging / Error
81
-
82
- - Use `logging.getLogger(__name__)`, don't rely on print
83
- - Express domain errors with dedicated exceptions (or error types), convert to HTTP in Presentation
84
-
85
- ## Implementation Tasks
86
-
87
- ### 1. Spec Verification
88
-
89
- - Verify the Spec for APIs to be added/changed (endpoints, input, output, errors, constraints, compatibility)
90
- - If Spec is ambiguous, ask questions/make proposals first to fix the spec
91
-
92
- ### 2. Impact Analysis
93
-
94
- - Identify target layers (Domain/Usecase/Infrastructure/Presentation)
95
- - Evaluate compatibility with existing APIs (field additions are optional by default, deletions/changes are Breaking)
96
- - Determine if DB changes are needed, whether migration is required
97
-
98
- ### 3. Implementation (Layer Order)
99
-
100
- - Domain: Types, rules, interface definitions
101
- - Usecase: Use case implementation (I/O, error design)
102
- - Infrastructure: Repository implementation (DB/External I/O)
103
- - Presentation: Endpoints + Pydantic schemas (thin)
104
-
105
- ### 4. Test / Verification
106
-
107
- - Add unit tests (Domain/Usecase) for critical logic
108
- - Verify API with minimal integration (success/failure, validation, exceptions)
109
- - Don't break existing API tests (if breaking, present Spec and migration plan together)
110
-
111
- ### 5. Documentation / Operations
112
-
113
- - Document changes (Spec diffs/migration/compatibility/rollback) in PR body
114
- - Add operational notes (env vars, permissions, DB migration) to README/Docs as needed
115
-
116
- ## Best Practices
117
-
118
- ### Layer Boundaries
119
-
120
- - No DB access/External I/O in Presentation (API)
121
- - Confine Infrastructure dependencies through Usecase
122
- - Aggregate domain rules in Domain
123
-
124
- ### Query / Performance
125
-
126
- - Avoid unnecessary round trips (tune fetch granularity, review select/join design)
127
- - Stabilize query execution with SQLAlchemy loading strategies (e.g., `selectinload`/`joinedload`)
128
- - Be able to explain "which queries increased/decreased" before and after changes
129
-
130
- ### Authorization
131
-
132
- - For APIs requiring auth, clarify "which layer handles it" (basically Usecase for policy, Presentation for input/HTTP)
133
- - Return errors at user-actionable granularity, keep details in logs (watch for information leakage)
134
-
135
- ### Exception Design
136
-
137
- - Separate "errors to return to users" from "internal exceptions"
138
- - Make exception messages user-actionable (insufficient info goes to logs)
139
-
140
- ### Types & Naming
141
-
142
- - Add Python type hints wherever possible
143
- - Avoid abbreviations, use "verb + noun" for function names so responsibilities are clear
144
-
145
- ## Quality Gate (Checklist)
146
-
147
- - **Spec alignment**: Specs (I/O/errors/compatibility) are documented and implementation matches
148
- - **Layer boundaries**: Dependency direction of Domain/Usecase/Infrastructure/Presentation is maintained
149
- - **Compatibility**: If there are breaking API changes, migration plan and rollback are documented
150
- - **Tests**: Unit tests for critical logic (Domain/Usecase) and minimal API verification (integration) exist
151
- - **Exceptions/Logs**: Expected failure paths are covered, logs are at investigable granularity
152
- - **Performance**: DB queries haven't unnecessarily increased (fetch granularity/loading strategy is appropriate)
153
-
154
- ## Trade-off Decision Criteria
155
-
156
- - **Speed vs Quality**:
157
- - Prototype: Prioritize YAGNI, but don't break layer boundaries
158
- - Production: Prioritize Spec/compatibility/tests, build to withstand future spec additions
159
- - **Performance vs Design**:
160
- - When performance requirements are strict, localize optimization per Usecase, keeping explainability (why it's needed)
161
-
162
- ## Escalation Criteria
163
-
164
- - DB migration is needed (especially with column deletion/type changes/data migration)
165
- - Authorization specs are ambiguous (who can do what is not determined)
166
- - Breaking compatibility is unavoidable (affects existing clients)
167
-
168
- ## Important Notes
169
-
170
- ### GitHub CI/CD Configuration Edit Prohibition
171
-
172
- - **GitHub Workflows**: Creating/editing/adding YAML files in `.github/workflows/` is **absolutely prohibited**
173
- - **GitHub Actions**: Creating/editing custom action definitions in `.github/actions/` is **absolutely prohibited**
174
- - **CI-related configuration files**: Editing `action.yml`, `action.yaml`, `.github/dependabot.yml` is **absolutely prohibited**
175
- - **GitHub CLI CI operations**: Running `gh workflow`, `gh run` and other CI operations is **absolutely prohibited**
@@ -1,29 +0,0 @@
1
- {{> ssot-header }}
2
-
3
- {{> godd-core }}
4
-
5
- {{> ssot-rules }}
6
-
7
- {{> project-context }}
8
-
9
- {{> cogito-grammar }}
10
- {{> cogito-root-core }}
11
- {{> cogito-particle }}
12
- {{> cogito-godd }}
13
- {{> cogito-root-dev }}
14
-
15
- ## Review Criteria (SSOT)
16
-
17
- - **Spec alignment**: Does implementation match `docs/003_requirements/spec/`?
18
- - **Boundaries**:
19
- - Backend: {{backend.dependency_direction}}
20
- - Front: UI and side effects separated (into hooks/services)
21
- - **Failure paths**: Are validation/error design/logs at investigable granularity?
22
- - **Compatibility**: If breaking changes exist, are migration/rollback documented?
23
- - **Minimal changes**: Is the change scope not excessive? (Can it be split?)
24
- - **Verification**: Are minimum verification steps/tests present?
25
-
26
- ## Output Format
27
-
28
- - Issues are presented with **severity (Blocker/Important/Nice)**, reason, and specific fix proposals as a set
29
- - If additional Spec/templates are needed, include proposals to add to `docs/003_requirements/spec` or `docs/006_development_workflow`