@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.
- package/README.md +89 -94
- package/dist/godd.cjs +349 -233
- package/dist/godd.js +2193 -838
- package/dist/index.js +152 -122
- package/{notes-api → notes/api}/.env.example +6 -1
- package/{notes-api → notes/api}/README.md +6 -5
- package/{notes-api → notes/api}/app/main.py +29 -2
- package/{notes-api → notes/api}/app/routers/auth.py +6 -1
- package/{notes-api → notes/api}/app/routers/issues.py +157 -1
- package/{notes-api → notes/api}/app/routers/pr.py +2 -2
- package/{notes-api → notes/api}/app/services/github_app_token.py +32 -1
- package/{notes-api → notes/api}/app/services/github_issues.py +101 -11
- package/{notes-api → notes/api}/app/services/github_pr.py +6 -1
- package/{notes-api → notes/api}/tests/test_github_app_token.py +49 -1
- package/{notes-api → notes/api}/tests/test_github_service.py +42 -0
- package/notes/api/tests/test_health.py +52 -0
- package/{notes-api → notes/api}/tests/test_issues.py +216 -0
- package/{notes-api → notes/api}/tests/test_pr.py +24 -0
- package/{notes-api → notes/api}/tests/test_pr_chain.py +19 -0
- package/{notes-api → notes/api}/uv.lock +178 -2
- package/notes/app/DESIGN.md +273 -0
- package/{notes-app → notes/app}/README.md +4 -1
- package/notes/app/docker/Dockerfile.e2e +19 -0
- package/notes/app/docker/Dockerfile.prod +15 -0
- package/notes/app/docker/Dockerfile.test +17 -0
- package/notes/app/e2e/file-tree.spec.ts +26 -0
- package/notes/app/e2e/file-view.spec.ts +25 -0
- package/notes/app/e2e/fixtures.ts +28 -0
- package/{notes-app → notes/app}/e2e/global-setup.ts +5 -7
- package/notes/app/e2e/login.spec.ts +25 -0
- package/notes/app/e2e/pages/login-page.ts +29 -0
- package/notes/app/e2e/pages/main-page.ts +29 -0
- package/notes/app/e2e/panel-resize-handle.spec.ts +213 -0
- package/{notes-app → notes/app}/eslint.config.js +9 -0
- package/{notes-app → notes/app}/package.json +0 -3
- package/{notes-app → notes/app}/pnpm-workspace.yaml +1 -0
- package/notes/app/src/components/CommentPanel.test.tsx +194 -0
- package/{notes-app → notes/app}/src/components/CommentPanel.tsx +119 -10
- package/notes/app/src/components/CommentSelectionPopover.tsx +26 -0
- package/notes/app/src/components/EditToolbar.test.tsx +102 -0
- package/{notes-app → notes/app}/src/components/EditToolbar.tsx +5 -54
- package/notes/app/src/components/FileInfoPanel.branch-tab.test.tsx +250 -0
- package/notes/app/src/components/FileInfoPanel.history-tab.test.tsx +146 -0
- package/notes/app/src/components/FileInfoPanel.test.tsx +101 -0
- package/{notes-app → notes/app}/src/components/FileInfoPanel.tsx +135 -20
- package/notes/app/src/components/IssueCommentThread.test.tsx +93 -0
- package/notes/app/src/components/IssueCommentThread.tsx +156 -0
- package/notes/app/src/components/IssueDetailView.test.tsx +1118 -0
- package/notes/app/src/components/IssueDetailView.tsx +476 -0
- package/notes/app/src/components/IssueList.test.tsx +545 -0
- package/notes/app/src/components/IssueList.tsx +374 -0
- package/{notes-app → notes/app}/src/components/LabelSelector.test.tsx +94 -8
- package/notes/app/src/components/LabelSelector.tsx +452 -0
- package/{notes-app → notes/app}/src/components/MarkdownEditor.tsx +140 -2
- package/notes/app/src/components/PanelResizeHandle.test.tsx +481 -0
- package/notes/app/src/components/PanelResizeHandle.tsx +96 -0
- package/{notes-app → notes/app}/src/hooks/useEditSession.test.ts +171 -23
- package/{notes-app → notes/app}/src/hooks/useEditSession.ts +49 -62
- package/notes/app/src/hooks/useMdUpLayout.test.ts +10 -0
- package/notes/app/src/hooks/useMdUpLayout.ts +27 -0
- package/notes/app/src/hooks/usePeriodicSync.test.ts +244 -0
- package/notes/app/src/hooks/usePeriodicSync.ts +83 -0
- package/notes/app/src/hooks/useResizablePanelWidth.test.ts +251 -0
- package/notes/app/src/hooks/useResizablePanelWidth.ts +167 -0
- package/{notes-app → notes/app}/src/lib/api.test.ts +81 -1
- package/{notes-app → notes/app}/src/lib/api.ts +98 -4
- package/notes/app/src/lib/commentAnchor.test.ts +22 -0
- package/notes/app/src/lib/commentAnchor.ts +28 -0
- package/notes/app/src/lib/commentHighlight.test.ts +110 -0
- package/notes/app/src/lib/commentHighlight.ts +44 -0
- package/notes/app/src/lib/github-sync.test.ts +126 -0
- package/notes/app/src/lib/github-sync.ts +89 -0
- package/notes/app/src/lib/issue-list-utils.test.ts +275 -0
- package/notes/app/src/lib/issue-list-utils.ts +135 -0
- package/notes/app/src/lib/issue-mobile-layout.test.ts +17 -0
- package/notes/app/src/lib/issue-mobile-layout.ts +20 -0
- package/notes/app/src/lib/issue-url-sync.test.ts +73 -0
- package/notes/app/src/lib/issue-url-sync.ts +43 -0
- package/notes/app/src/lib/main-page-default-view.test.ts +37 -0
- package/notes/app/src/lib/main-page-default-view.ts +15 -0
- package/notes/app/src/lib/resizable-panel.test.ts +199 -0
- package/notes/app/src/lib/resizable-panel.ts +136 -0
- package/notes/app/src/pages/LoginPage.test.tsx +17 -0
- package/notes/app/src/pages/MainPage.branch-modal.test.tsx +226 -0
- package/notes/app/src/pages/MainPage.issue-sync.test.tsx +145 -0
- package/notes/app/src/pages/MainPage.sidebar.test.tsx +361 -0
- package/{notes-app → notes/app}/src/pages/MainPage.tsx +406 -61
- package/{notes-app → notes/app}/src/pages/SettingsPage.test.tsx +32 -23
- package/{notes-app → notes/app}/src/pages/UserManagementPage.test.tsx +8 -18
- package/notes/app/src/test/mocks.ts +156 -0
- package/notes/app/src/test/render.tsx +27 -0
- package/package.json +3 -5
- package/notes-api/tests/test_health.py +0 -11
- package/notes-app/docker/Dockerfile.e2e +0 -14
- package/notes-app/docker/Dockerfile.prod +0 -12
- package/notes-app/docker/Dockerfile.test +0 -12
- package/notes-app/e2e/file-tree.spec.ts +0 -29
- package/notes-app/e2e/file-view.spec.ts +0 -24
- package/notes-app/e2e/login.spec.ts +0 -32
- package/notes-app/src/components/IssueDetailView.test.tsx +0 -201
- package/notes-app/src/components/IssueDetailView.tsx +0 -318
- package/notes-app/src/components/IssueList.test.tsx +0 -93
- package/notes-app/src/components/IssueList.tsx +0 -169
- package/notes-app/src/components/LabelSelector.tsx +0 -276
- package/notes-app/src/pages/LoginPage.test.tsx +0 -29
- package/stacks/django-vue.yaml +0 -33
- package/stacks/fastapi-react.yaml +0 -160
- package/stacks/flutter-firebase.yaml +0 -58
- package/stacks/nextjs-prisma.yaml +0 -33
- package/stacks/schema.json +0 -144
- package/templates/agents/architect.hbs +0 -183
- package/templates/agents/auto-documenter.hbs +0 -36
- package/templates/agents/backend-developer.hbs +0 -175
- package/templates/agents/code-reviewer.hbs +0 -29
- package/templates/agents/database-developer.hbs +0 -52
- package/templates/agents/debug-specialist.hbs +0 -39
- package/templates/agents/environment-setup.hbs +0 -41
- package/templates/agents/frontend-developer.hbs +0 -45
- package/templates/agents/integration-qa.hbs +0 -26
- package/templates/agents/performance-qa.hbs +0 -24
- package/templates/agents/pr-writer.hbs +0 -53
- package/templates/agents/quality-lead.hbs +0 -26
- package/templates/agents/requirements-analyst.hbs +0 -26
- package/templates/agents/security-analyst.hbs +0 -21
- package/templates/agents/security-reviewer.hbs +0 -20
- package/templates/agents/ssot-updater.hbs +0 -45
- package/templates/agents/technical-writer.hbs +0 -28
- package/templates/agents/unit-test-engineer.hbs +0 -19
- package/templates/agents/user-clone.hbs +0 -43
- package/templates/github-actions/aws/deploy-notes.yml.hbs +0 -117
- package/templates/github-actions/azure/deploy-notes.yml.hbs +0 -78
- package/templates/github-actions/gcp/deploy-notes.yml.hbs +0 -76
- package/templates/github-actions/vercel-railway/deploy-notes.yml.hbs +0 -49
- package/templates/mindsets/agent-stdio.hbs +0 -51
- package/templates/mindsets/dart.hbs +0 -39
- package/templates/mindsets/ddd-clean-architecture.hbs +0 -52
- package/templates/mindsets/electron.hbs +0 -41
- package/templates/mindsets/fastapi.hbs +0 -40
- package/templates/mindsets/flutter.hbs +0 -56
- package/templates/mindsets/kotlin.hbs +0 -46
- package/templates/mindsets/postgresql.hbs +0 -39
- package/templates/mindsets/python.hbs +0 -39
- package/templates/mindsets/react.hbs +0 -51
- package/templates/mindsets/swift.hbs +0 -46
- package/templates/mindsets/terraform.hbs +0 -53
- package/templates/mindsets/typescript.hbs +0 -34
- package/templates/mindsets/vite.hbs +0 -37
- package/templates/notes-compose.yml +0 -82
- package/templates/partials/cogito-geo.hbs +0 -84
- package/templates/partials/cogito-godd.hbs +0 -22
- package/templates/partials/cogito-grammar.hbs +0 -105
- package/templates/partials/cogito-particle.hbs +0 -76
- package/templates/partials/cogito-root-ai.hbs +0 -79
- package/templates/partials/cogito-root-arch.hbs +0 -75
- package/templates/partials/cogito-root-core.hbs +0 -75
- package/templates/partials/cogito-root-daily.hbs +0 -58
- package/templates/partials/cogito-root-dev.hbs +0 -71
- package/templates/partials/cogito-root-devops.hbs +0 -71
- package/templates/partials/cogito-root-framework.hbs +0 -80
- package/templates/partials/cogito-root-lang.hbs +0 -74
- package/templates/partials/godd-core.hbs +0 -50
- package/templates/partials/project-context.hbs +0 -52
- package/templates/partials/ssot-header.hbs +0 -40
- package/templates/partials/ssot-rules.hbs +0 -30
- package/templates/prompts/adr.hbs +0 -39
- package/templates/prompts/agent-dev-workflow.hbs +0 -34
- package/templates/prompts/analyze-report.hbs +0 -36
- package/templates/prompts/auto-documentation.hbs +0 -37
- package/templates/prompts/check.hbs +0 -52
- package/templates/prompts/commit.hbs +0 -96
- package/templates/prompts/dev.hbs +0 -127
- package/templates/prompts/docs-init.hbs +0 -101
- package/templates/prompts/docs-update.hbs +0 -51
- package/templates/prompts/git-workflow.hbs +0 -125
- package/templates/prompts/impact-analysis.hbs +0 -43
- package/templates/prompts/install.hbs +0 -40
- package/templates/prompts/new-branch.hbs +0 -61
- package/templates/prompts/notes-deploy.hbs +0 -138
- package/templates/prompts/pr-analyze.hbs +0 -44
- package/templates/prompts/pr-create.hbs +0 -125
- package/templates/prompts/push-execute.hbs +0 -83
- package/templates/prompts/push.hbs +0 -24
- package/templates/prompts/release-notes.hbs +0 -38
- package/templates/prompts/requirements-to-business-flow.hbs +0 -29
- package/templates/prompts/requirements-to-tickets.hbs +0 -26
- package/templates/prompts/review.hbs +0 -126
- package/templates/prompts/setup.hbs +0 -247
- package/templates/prompts/spec.hbs +0 -35
- package/templates/prompts/specification-to-tickets.hbs +0 -24
- package/templates/prompts/submit.hbs +0 -143
- package/templates/prompts/sync.hbs +0 -63
- package/templates/prompts/test-plan.hbs +0 -56
- package/templates/scripts/aws/terraform-backend-setup.sh.hbs +0 -149
- package/templates/terraform/aws/alb.tf.hbs +0 -58
- package/templates/terraform/aws/backend.tf.hbs +0 -10
- package/templates/terraform/aws/cloudfront.tf.hbs +0 -96
- package/templates/terraform/aws/ecr.tf.hbs +0 -30
- package/templates/terraform/aws/ecs.tf.hbs +0 -142
- package/templates/terraform/aws/iam.tf.hbs +0 -88
- package/templates/terraform/aws/local.tf.hbs +0 -34
- package/templates/terraform/aws/output.tf.hbs +0 -49
- package/templates/terraform/aws/provider.tf.hbs +0 -26
- package/templates/terraform/aws/rds.tf.hbs +0 -38
- package/templates/terraform/aws/s3.tf.hbs +0 -34
- package/templates/terraform/aws/secrets.tf.hbs +0 -53
- package/templates/terraform/aws/security_groups.tf.hbs +0 -81
- package/templates/terraform/aws/vpc.tf.hbs +0 -63
- package/templates/terraform/azure/backend.tf.hbs +0 -8
- package/templates/terraform/azure/iam.tf.hbs +0 -36
- package/templates/terraform/azure/main.tf.hbs +0 -203
- package/templates/terraform/azure/output.tf.hbs +0 -19
- package/templates/terraform/azure/provider.tf.hbs +0 -19
- package/templates/terraform/gcp/backend.tf.hbs +0 -6
- package/templates/terraform/gcp/iam.tf.hbs +0 -47
- package/templates/terraform/gcp/main.tf.hbs +0 -175
- package/templates/terraform/gcp/output.tf.hbs +0 -15
- package/templates/terraform/gcp/provider.tf.hbs +0 -19
- package/templates/terraform/vercel-railway/main.tf.hbs +0 -64
- package/templates/terraform/vercel-railway/output.tf.hbs +0 -11
- /package/{notes-api → notes/api}/.dockerignore +0 -0
- /package/{notes-api → notes/api}/alembic/README +0 -0
- /package/{notes-api → notes/api}/alembic/env.py +0 -0
- /package/{notes-api → notes/api}/alembic/script.py.mako +0 -0
- /package/{notes-api → notes/api}/alembic/versions/001_initial_notes_tables.py +0 -0
- /package/{notes-api → notes/api}/alembic/versions/002_add_performance_indexes.py +0 -0
- /package/{notes-api → notes/api}/alembic/versions/003_add_yjs_documents.py +0 -0
- /package/{notes-api → notes/api}/alembic/versions/004_add_comments.py +0 -0
- /package/{notes-api → notes/api}/alembic/versions/005_add_github_username.py +0 -0
- /package/{notes-api → notes/api}/alembic/versions/006_add_check_constraints.py +0 -0
- /package/{notes-api → notes/api}/alembic.ini +0 -0
- /package/{notes-api → notes/api}/app/__init__.py +0 -0
- /package/{notes-api → notes/api}/app/config.py +0 -0
- /package/{notes-api → notes/api}/app/database.py +0 -0
- /package/{notes-api → notes/api}/app/http_client.py +0 -0
- /package/{notes-api → notes/api}/app/models/__init__.py +0 -0
- /package/{notes-api → notes/api}/app/models/audit.py +0 -0
- /package/{notes-api → notes/api}/app/models/base.py +0 -0
- /package/{notes-api → notes/api}/app/models/collab.py +0 -0
- /package/{notes-api → notes/api}/app/models/comment.py +0 -0
- /package/{notes-api → notes/api}/app/models/session.py +0 -0
- /package/{notes-api → notes/api}/app/models/setting.py +0 -0
- /package/{notes-api → notes/api}/app/models/user.py +0 -0
- /package/{notes-api → notes/api}/app/path_validation.py +0 -0
- /package/{notes-api → notes/api}/app/routers/__init__.py +0 -0
- /package/{notes-api → notes/api}/app/routers/collab.py +0 -0
- /package/{notes-api → notes/api}/app/routers/comments.py +0 -0
- /package/{notes-api → notes/api}/app/routers/files.py +0 -0
- /package/{notes-api → notes/api}/app/routers/settings.py +0 -0
- /package/{notes-api → notes/api}/app/routers/tree.py +0 -0
- /package/{notes-api → notes/api}/app/routers/upload.py +0 -0
- /package/{notes-api → notes/api}/app/routers/users.py +0 -0
- /package/{notes-api → notes/api}/app/schemas/__init__.py +0 -0
- /package/{notes-api → notes/api}/app/schemas/auth.py +0 -0
- /package/{notes-api → notes/api}/app/schemas/user.py +0 -0
- /package/{notes-api → notes/api}/app/security.py +0 -0
- /package/{notes-api → notes/api}/app/services/__init__.py +0 -0
- /package/{notes-api → notes/api}/app/services/audit.py +0 -0
- /package/{notes-api → notes/api}/app/services/business_date.py +0 -0
- /package/{notes-api → notes/api}/app/services/collab.py +0 -0
- /package/{notes-api → notes/api}/app/services/github.py +0 -0
- /package/{notes-api → notes/api}/app/services/pr_chain.py +0 -0
- /package/{notes-api → notes/api}/app/startup.py +0 -0
- /package/{notes-api → notes/api}/docker/Dockerfile +0 -0
- /package/{notes-api → notes/api}/docker/Dockerfile.test +0 -0
- /package/{notes-api → notes/api}/pyproject.toml +0 -0
- /package/{notes-api → notes/api}/tests/conftest.py +0 -0
- /package/{notes-api → notes/api}/tests/test_audit.py +0 -0
- /package/{notes-api → notes/api}/tests/test_auth.py +0 -0
- /package/{notes-api → notes/api}/tests/test_business_date.py +0 -0
- /package/{notes-api → notes/api}/tests/test_collab.py +0 -0
- /package/{notes-api → notes/api}/tests/test_comments.py +0 -0
- /package/{notes-api → notes/api}/tests/test_config_ssl.py +0 -0
- /package/{notes-api → notes/api}/tests/test_config_warnings.py +0 -0
- /package/{notes-api → notes/api}/tests/test_files.py +0 -0
- /package/{notes-api → notes/api}/tests/test_path_validation.py +0 -0
- /package/{notes-api → notes/api}/tests/test_security.py +0 -0
- /package/{notes-api → notes/api}/tests/test_settings.py +0 -0
- /package/{notes-api → notes/api}/tests/test_tree.py +0 -0
- /package/{notes-api → notes/api}/tests/test_upload.py +0 -0
- /package/{notes-api → notes/api}/tests/test_users.py +0 -0
- /package/{notes-app → notes/app}/.dockerignore +0 -0
- /package/{notes-app → notes/app}/index.html +0 -0
- /package/{notes-app → notes/app}/nginx.conf +0 -0
- /package/{notes-app → notes/app}/package-lock.json +0 -0
- /package/{notes-app → notes/app}/playwright.config.ts +0 -0
- /package/{notes-app → notes/app}/pnpm-lock.yaml +0 -0
- /package/{notes-app → notes/app}/src/App.tsx +0 -0
- /package/{notes-app → notes/app}/src/components/BranchSelectorModal.tsx +0 -0
- /package/{notes-app → notes/app}/src/components/CodeBlockView.test.tsx +0 -0
- /package/{notes-app → notes/app}/src/components/CodeBlockView.tsx +0 -0
- /package/{notes-app → notes/app}/src/components/CollabStatus.tsx +0 -0
- /package/{notes-app → notes/app}/src/components/DiffPreview.tsx +0 -0
- /package/{notes-app → notes/app}/src/components/DrawioEditor.tsx +0 -0
- /package/{notes-app → notes/app}/src/components/DrawioViewer.tsx +0 -0
- /package/{notes-app → notes/app}/src/components/ErrorBoundary.test.tsx +0 -0
- /package/{notes-app → notes/app}/src/components/ErrorBoundary.tsx +0 -0
- /package/{notes-app → notes/app}/src/components/FileContentView.tsx +0 -0
- /package/{notes-app → notes/app}/src/components/FileContextMenu.test.tsx +0 -0
- /package/{notes-app → notes/app}/src/components/FileContextMenu.tsx +0 -0
- /package/{notes-app → notes/app}/src/components/FileDialogs.test.tsx +0 -0
- /package/{notes-app → notes/app}/src/components/FileDialogs.tsx +0 -0
- /package/{notes-app → notes/app}/src/components/SaveStatusIndicator.test.tsx +0 -0
- /package/{notes-app → notes/app}/src/components/SaveStatusIndicator.tsx +0 -0
- /package/{notes-app → notes/app}/src/components/Skeleton.tsx +0 -0
- /package/{notes-app → notes/app}/src/components/SpreadsheetEditor.test.tsx +0 -0
- /package/{notes-app → notes/app}/src/components/SpreadsheetEditor.tsx +0 -0
- /package/{notes-app → notes/app}/src/components/TextEditor.tsx +0 -0
- /package/{notes-app → notes/app}/src/components/ToastContainer.tsx +0 -0
- /package/{notes-app → notes/app}/src/components/TreeNode.tsx +0 -0
- /package/{notes-app → notes/app}/src/contexts/AuthContext.test.tsx +0 -0
- /package/{notes-app → notes/app}/src/contexts/AuthContext.tsx +0 -0
- /package/{notes-app → notes/app}/src/contexts/ToastContext.test.ts +0 -0
- /package/{notes-app → notes/app}/src/contexts/ToastContext.tsx +0 -0
- /package/{notes-app → notes/app}/src/hooks/useAutoSave.test.ts +0 -0
- /package/{notes-app → notes/app}/src/hooks/useAutoSave.ts +0 -0
- /package/{notes-app → notes/app}/src/hooks/useCollaboration.ts +0 -0
- /package/{notes-app → notes/app}/src/hooks/useComments.ts +0 -0
- /package/{notes-app → notes/app}/src/hooks/useYText.ts +0 -0
- /package/{notes-app → notes/app}/src/lib/branch-diff.test.ts +0 -0
- /package/{notes-app → notes/app}/src/lib/branch-diff.ts +0 -0
- /package/{notes-app → notes/app}/src/lib/created-file.test.ts +0 -0
- /package/{notes-app → notes/app}/src/lib/created-file.ts +0 -0
- /package/{notes-app → notes/app}/src/lib/csv-utils.test.ts +0 -0
- /package/{notes-app → notes/app}/src/lib/csv-utils.ts +0 -0
- /package/{notes-app → notes/app}/src/lib/deepLinkPathToSearch.test.ts +0 -0
- /package/{notes-app → notes/app}/src/lib/deepLinkPathToSearch.ts +0 -0
- /package/{notes-app → notes/app}/src/lib/draft-storage.test.ts +0 -0
- /package/{notes-app → notes/app}/src/lib/draft-storage.ts +0 -0
- /package/{notes-app → notes/app}/src/lib/mermaid-render.ts +0 -0
- /package/{notes-app → notes/app}/src/lib/postLoginRedirect.test.ts +0 -0
- /package/{notes-app → notes/app}/src/lib/postLoginRedirect.ts +0 -0
- /package/{notes-app → notes/app}/src/lib/tree-utils.ts +0 -0
- /package/{notes-app → notes/app}/src/lib/user-colors.ts +0 -0
- /package/{notes-app → notes/app}/src/lib/xlsx-utils.test.ts +0 -0
- /package/{notes-app → notes/app}/src/lib/xlsx-utils.ts +0 -0
- /package/{notes-app → notes/app}/src/main.tsx +0 -0
- /package/{notes-app → notes/app}/src/pages/LoginPage.tsx +0 -0
- /package/{notes-app → notes/app}/src/pages/MainPage.insertChildEntry.test.ts +0 -0
- /package/{notes-app → notes/app}/src/pages/SettingsPage.tsx +0 -0
- /package/{notes-app → notes/app}/src/pages/UserManagementPage.tsx +0 -0
- /package/{notes-app → notes/app}/src/styles/globals.css +0 -0
- /package/{notes-app → notes/app}/src/types.ts +0 -0
- /package/{notes-app → notes/app}/src/vite-env.d.ts +0 -0
- /package/{notes-app → notes/app}/tsconfig.json +0 -0
- /package/{notes-app → notes/app}/tsconfig.node.json +0 -0
- /package/{notes-app → notes/app}/vite.config.js +0 -0
- /package/{notes-app → notes/app}/vite.config.ts +0 -0
- /package/{notes-app → notes/app}/vitest.config.ts +0 -0
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
## SSOT Update & Question Management Rules (MUST)
|
|
2
|
-
|
|
3
|
-
### Handling Spec Changes
|
|
4
|
-
- When the user communicates a new spec, **update the SSOT**
|
|
5
|
-
- If the SSOT update contradicts other specs, **ask the user for clarification**
|
|
6
|
-
|
|
7
|
-
### Question Management
|
|
8
|
-
- When the user **does not clearly answer** a question (no answer / ambiguous answer), add the question to **`docs/003_requirements/questions.csv`** (path: `{{project.question_list_path}}`)
|
|
9
|
-
- CSV columns: `id,category,question,context,answer,spec_file,status`
|
|
10
|
-
- Status values:
|
|
11
|
-
- `unanswered` — not yet answered
|
|
12
|
-
- `answered` — user provided a clear answer
|
|
13
|
-
- `spec_reflected` — answer has been reflected in the spec document (hidden in Notes view)
|
|
14
|
-
- When a question is answered: update `answer` column → reflect in spec → set status to `spec_reflected`
|
|
15
|
-
- Create the file with header row if it does not exist
|
|
16
|
-
|
|
17
|
-
### Implementation Decisions
|
|
18
|
-
- When instructed to implement without answers to questions:
|
|
19
|
-
- **Apply the "common sense" approach**
|
|
20
|
-
- When clear answers or specs are available:
|
|
21
|
-
- **Never guess** — implement exactly as specified
|
|
22
|
-
|
|
23
|
-
### Question Template (Use This Format When Asking Questions)
|
|
24
|
-
When you need to ask the user a question, structure it as follows:
|
|
25
|
-
|
|
26
|
-
1. **Current understanding**: What you know so far
|
|
27
|
-
2. **Unclear point**: What specifically is ambiguous
|
|
28
|
-
3. **Options**: Available choices (if any)
|
|
29
|
-
4. **Recommendation**: Your suggested approach and why
|
|
30
|
-
5. **Additional info needed**: What would help you decide
|
|
@@ -1,39 +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-daily }}
|
|
14
|
-
|
|
15
|
-
## Purpose
|
|
16
|
-
Create an ADR (Architecture Decision Record) that records design decisions in a form where readers can later reach the same conclusion.
|
|
17
|
-
An ADR must explain the **why** so thoroughly that a future reader can independently evaluate whether the decision still holds.
|
|
18
|
-
|
|
19
|
-
## Input
|
|
20
|
-
- What to decide (Decision)
|
|
21
|
-
- Background (Context)
|
|
22
|
-
- Alternatives (Options)
|
|
23
|
-
|
|
24
|
-
## Output
|
|
25
|
-
Markdown ADR with the following sections:
|
|
26
|
-
- **Title**: Short, descriptive name for the decision
|
|
27
|
-
- **Status**: Proposed / Accepted / Deprecated / Superseded
|
|
28
|
-
- **Context**: What is the issue? What forces are at play? What constraints exist?
|
|
29
|
-
- **Decision**: What was decided and why
|
|
30
|
-
- **Alternatives Considered**: For each alternative:
|
|
31
|
-
- Description
|
|
32
|
-
- Pros and cons
|
|
33
|
-
- Why it was not chosen
|
|
34
|
-
- **Consequences**: What becomes easier or harder as a result of this decision
|
|
35
|
-
- **Trade-offs**: What was sacrificed and what was gained (be explicit)
|
|
36
|
-
- **Rollback Plan**: How to reverse this decision if it proves wrong
|
|
37
|
-
- **Related Decisions**: Links to related ADRs or Spec documents
|
|
38
|
-
|
|
39
|
-
Always include **trade-offs** and **rollback plan** — these are the most valuable parts of an ADR.
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
{{> ssot-header }}
|
|
2
|
-
|
|
3
|
-
{{> cogito-grammar }}
|
|
4
|
-
{{> cogito-root-core }}
|
|
5
|
-
{{> cogito-particle }}
|
|
6
|
-
{{> cogito-godd }}
|
|
7
|
-
{{> cogito-root-dev }}
|
|
8
|
-
|
|
9
|
-
{{> ssot-rules }}
|
|
10
|
-
|
|
11
|
-
{{> project-context }}
|
|
12
|
-
|
|
13
|
-
## Purpose (Terminal-free operation)
|
|
14
|
-
Enable developers to complete the full cycle — from environment setup to implementation, testing, commit, push, and PR creation — simply by requesting in natural language, without ever touching a terminal.
|
|
15
|
-
|
|
16
|
-
## Absolute Rules (Important)
|
|
17
|
-
- **Default branch protection**: Before making any code changes, check the current branch. If on the default branch (main/master), **always create a new feature branch first**
|
|
18
|
-
- Branch naming: `feat/<slug-or-task-summary>-<YYYYMMDD>` (e.g. `feat/add-auth-20260212`)
|
|
19
|
-
- Never commit directly to the default branch
|
|
20
|
-
- When **UI implementation is involved**, always separate into **frontend** and **backend branches**
|
|
21
|
-
- `feat/<slug>-frontend-<YYYYMMDD>` / `feat/<slug>-backend-<YYYYMMDD>`
|
|
22
|
-
- **1 commit = 1 responsibility** (mixed Front/Back commits are prohibited)
|
|
23
|
-
- **End-of-work commits**: When development is complete, group changes into logical commit units (by concern: schema, backend, frontend, tests, config, docs) — do NOT make a single monolithic commit
|
|
24
|
-
- Humans review **only via GitHub PR diffs**
|
|
25
|
-
|
|
26
|
-
## Canonical References
|
|
27
|
-
- Spec: `docs/003_requirements/spec/`
|
|
28
|
-
{{#if frontend}}- Frontend quality gate: `{{frontend.build_command}}`
|
|
29
|
-
{{/if}}{{#if backend}}- Backend quality gate: `{{quality_gate.backend}}`
|
|
30
|
-
{{/if}}
|
|
31
|
-
|
|
32
|
-
## How to proceed (Important)
|
|
33
|
-
- **The developer's (human) entry point is the `dev` prompt** (with @references + purpose + completion criteria)
|
|
34
|
-
- The procedures and commands in this prompt are **Agent-internal execution methods** (reference only); humans do not need to memorize or execute them
|
|
@@ -1,36 +0,0 @@
|
|
|
1
|
-
{{> ssot-header }}
|
|
2
|
-
|
|
3
|
-
{{> cogito-grammar }}
|
|
4
|
-
{{> cogito-root-core }}
|
|
5
|
-
{{> cogito-particle }}
|
|
6
|
-
{{> cogito-godd }}
|
|
7
|
-
{{> cogito-root-daily }}
|
|
8
|
-
|
|
9
|
-
{{> ssot-rules }}
|
|
10
|
-
|
|
11
|
-
{{> project-context }}
|
|
12
|
-
|
|
13
|
-
## Purpose
|
|
14
|
-
Produce a consistent report at task completion, following the template structure.
|
|
15
|
-
|
|
16
|
-
## Output
|
|
17
|
-
Fill in the following headings concisely, leaving no blanks (keep code blocks minimal).
|
|
18
|
-
|
|
19
|
-
### Change Summary
|
|
20
|
-
-
|
|
21
|
-
|
|
22
|
-
### Impact Scope
|
|
23
|
-
{{#if frontend}}- Frontend(`{{frontend.root_dir}}`):
|
|
24
|
-
{{/if}}{{#if backend}}- Backend(`{{backend.root_dir}}`):
|
|
25
|
-
{{/if}}- Other:
|
|
26
|
-
|
|
27
|
-
### Verification Performed
|
|
28
|
-
- Command/Result:
|
|
29
|
-
|
|
30
|
-
### Compatibility / Migration
|
|
31
|
-
- Breaking changes: Yes/No
|
|
32
|
-
- Migration steps:
|
|
33
|
-
- Rollback:
|
|
34
|
-
|
|
35
|
-
### Remaining Risks / Open Items
|
|
36
|
-
-
|
|
@@ -1,37 +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-daily }}
|
|
14
|
-
|
|
15
|
-
## Purpose
|
|
16
|
-
From the changes, comprehensively identify all documentation updates needed and draft the diffs.
|
|
17
|
-
Documentation must stay in sync with implementation — stale docs are worse than no docs.
|
|
18
|
-
|
|
19
|
-
## Input
|
|
20
|
-
- Change details (target files / behavior diff)
|
|
21
|
-
- Reason for change (purpose / completion criteria)
|
|
22
|
-
|
|
23
|
-
## Document Types to Check
|
|
24
|
-
Review whether each of these needs updating:
|
|
25
|
-
- **Spec documents**: Feature specs, API specs, DB specs
|
|
26
|
-
- **README files**: Project root and module-level READMEs
|
|
27
|
-
- **Configuration docs**: Environment variables, setup instructions
|
|
28
|
-
- **Tech stack docs**: Dependencies, versions, architecture decisions
|
|
29
|
-
- **Operational docs**: Deployment, migration, rollback procedures
|
|
30
|
-
- **SSOT documents**: Spec index, operational rules, question list
|
|
31
|
-
- **ADR (Architecture Decision Records)**: If the change involves a design decision
|
|
32
|
-
|
|
33
|
-
## Output
|
|
34
|
-
1. **List of documents to update** (file paths, with priority)
|
|
35
|
-
2. **Addition/modification points** for each document (bullet list with specific changes)
|
|
36
|
-
3. **Broken-reference check** items (links / paths that may be invalidated by the change)
|
|
37
|
-
4. **New documents needed** (if the change introduces a new feature/module with no documentation)
|
|
@@ -1,52 +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
|
-
## Purpose
|
|
16
|
-
Check the "minimum quality gate" before submitting changes and identify any missing perspectives.
|
|
17
|
-
This is the **last line of defense** — be thorough and systematic.
|
|
18
|
-
|
|
19
|
-
## Checklist (Evaluate Every Item)
|
|
20
|
-
|
|
21
|
-
- **Spec alignment**: Does the Spec need updates? If gaps exist, propose additions. If Spec is missing for the change, flag it.
|
|
22
|
-
- **Impact scope**: Has the impact been analyzed? Are all affected modules identified?
|
|
23
|
-
- **Test plan**: Is the test plan documented? Does it cover boundary values and error cases?
|
|
24
|
-
- **Compatibility/Migration**: If breaking changes exist, is migration/rollback documented?
|
|
25
|
-
- **Tests (highest priority)**: Continue improving until **API tests/E2E tests pass** within available test infrastructure
|
|
26
|
-
- If unable to run tests: document the **reason**, **alternative verification**, and **remaining risks**
|
|
27
|
-
- Test priority: unit → integration → e2e
|
|
28
|
-
{{#if frontend}}
|
|
29
|
-
- **Frontend (if changed)**: Run `{{frontend.build_command}}` — must pass
|
|
30
|
-
{{/if}}
|
|
31
|
-
{{#if backend}}
|
|
32
|
-
- **Backend (if changed)**: Minimal backend verification (startup / main API endpoints respond)
|
|
33
|
-
{{/if}}
|
|
34
|
-
- **Security**: Ensure secrets are not exposed in logs, exceptions, or UI
|
|
35
|
-
- **SSOT consistency**: Are all SSOT documents (Spec, operational rules) still consistent after this change?
|
|
36
|
-
- **Commit hygiene**: 1 commit = 1 responsibility? No Front/Back mixed commits?
|
|
37
|
-
|
|
38
|
-
## Output
|
|
39
|
-
For each checklist item, report:
|
|
40
|
-
- **Status**: PASS / FAIL / N/A
|
|
41
|
-
- **Details**: What was checked, what was found
|
|
42
|
-
- **Action needed**: If FAIL, what needs to be fixed
|
|
43
|
-
|
|
44
|
-
{{#if frontend.mindset}}
|
|
45
|
-
## Frontend Review Criteria
|
|
46
|
-
{{{frontend.mindset}}}
|
|
47
|
-
{{/if}}
|
|
48
|
-
|
|
49
|
-
{{#if backend.mindset}}
|
|
50
|
-
## Backend Review Criteria
|
|
51
|
-
{{{backend.mindset}}}
|
|
52
|
-
{{/if}}
|
|
@@ -1,96 +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
|
-
## Purpose
|
|
16
|
-
Split changes into **proper granularity (1 commit = 1 responsibility)** and commit them with **rule-compliant commit messages**. The Agent handles the full flow: propose → confirm → execute.
|
|
17
|
-
|
|
18
|
-
## Auto-confirm Mode
|
|
19
|
-
{{#if auto_confirm}}
|
|
20
|
-
**auto_confirm is ENABLED** — Skip user approval for the commit plan. Execute immediately after creating the plan and report results afterward.
|
|
21
|
-
{{else}}
|
|
22
|
-
**auto_confirm is DISABLED (default)** — Wait for user approval before executing the commit plan.
|
|
23
|
-
{{/if}}
|
|
24
|
-
|
|
25
|
-
## Rules (1 commit = 1 responsibility)
|
|
26
|
-
|
|
27
|
-
### Hard Scope (mixing these in a single commit is NG)
|
|
28
|
-
- `frontend`: `frontend/**`
|
|
29
|
-
- `backend`: `backend/**`
|
|
30
|
-
- `repo-root`: Everything else
|
|
31
|
-
|
|
32
|
-
### Soft Scope (can be included in the same commit)
|
|
33
|
-
- `docs`: `docs/**`
|
|
34
|
-
- `scripts`: `scripts/**`
|
|
35
|
-
|
|
36
|
-
Example: `frontend + docs` is OK, `frontend + backend` is NG.
|
|
37
|
-
|
|
38
|
-
### Commit Message Rules
|
|
39
|
-
- **Subject (line 1)**: Max 50 characters, start with lowercase English verb
|
|
40
|
-
- Prefixes: `add` / `update` / `fix` / `refactor` / `remove` / `docs` / `chore` / `test`
|
|
41
|
-
- Example: `add user authentication endpoint`
|
|
42
|
-
- Example: `fix validation error on login form`
|
|
43
|
-
- **Blank line**
|
|
44
|
-
- **Body**: May be in the project's working language. Include:
|
|
45
|
-
- **Why**: Why this change is needed (1-2 lines)
|
|
46
|
-
- **What**: What was changed (bullet list)
|
|
47
|
-
- **Impact**: Scope of impact (required for breaking changes)
|
|
48
|
-
|
|
49
|
-
## Agent Steps (MUST)
|
|
50
|
-
|
|
51
|
-
### Step 1: Review All Changes
|
|
52
|
-
1. Run `git status` to list changed files (staged / unstaged / untracked)
|
|
53
|
-
2. Run `git diff` for unstaged diffs
|
|
54
|
-
3. Run `git diff --cached` for staged diffs
|
|
55
|
-
- **If no changes**: Report "No changes to commit" and exit
|
|
56
|
-
|
|
57
|
-
### Step 2: Create Commit Plan by Responsibility
|
|
58
|
-
1. Classify changed files by **hard scope**:
|
|
59
|
-
- `frontend/**` → frontend group
|
|
60
|
-
- `backend/**` → backend group
|
|
61
|
-
- Other → repo-root group
|
|
62
|
-
2. Within each group, further split by **logical responsibility**:
|
|
63
|
-
- Same feature/purpose → group into one commit
|
|
64
|
-
- Different features → separate commits
|
|
65
|
-
- `docs` / `scripts` may be included with their related hard scope commit
|
|
66
|
-
3. Create a **commit plan** (what goes into which commit, in what order)
|
|
67
|
-
|
|
68
|
-
### Step 3: Present Plan and Confirm
|
|
69
|
-
1. Present the commit plan to the user:
|
|
70
|
-
```
|
|
71
|
-
Commit Plan:
|
|
72
|
-
1. [scope] <proposed commit message>
|
|
73
|
-
- Files: file1, file2, ...
|
|
74
|
-
2. [scope] <proposed commit message>
|
|
75
|
-
- Files: file3, file4, ...
|
|
76
|
-
```
|
|
77
|
-
{{#if auto_confirm}}
|
|
78
|
-
2. **Auto-confirm enabled**: Skip approval and proceed directly to Step 4
|
|
79
|
-
{{else}}
|
|
80
|
-
2. Wait for user approval
|
|
81
|
-
- If modifications are requested, revise and re-present
|
|
82
|
-
{{/if}}
|
|
83
|
-
|
|
84
|
-
### Step 4: Execute Commits
|
|
85
|
-
1. For each commit in the plan:
|
|
86
|
-
- `git add <target files>` to stage
|
|
87
|
-
- `git diff --cached --stat` to verify staged content
|
|
88
|
-
- `git commit -m "<commit message>"` to commit
|
|
89
|
-
2. After each commit, verify with `git log --oneline -1`
|
|
90
|
-
3. After all commits, show `git log --oneline -<commit count>`
|
|
91
|
-
|
|
92
|
-
## Output
|
|
93
|
-
- **Commit plan**: Responsibility split and message proposals (for user confirmation)
|
|
94
|
-
- **Execution result**: Each commit hash and message
|
|
95
|
-
- **Final state**: `git status` summary (any remaining uncommitted changes)
|
|
96
|
-
- **Warnings** (if applicable): Hard scope mixing detected, oversized commits
|
|
@@ -1,127 +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
|
-
## Purpose
|
|
16
|
-
This is the **canonical development entry prompt** that enables an Agent to automatically complete the following when a developer (human) simply **makes a request in natural language**.
|
|
17
|
-
|
|
18
|
-
- Environment/prerequisite check (preflight)
|
|
19
|
-
- Post-change quality gate (quality-gate)
|
|
20
|
-
- PR body generation (template-compliant, fact-based)
|
|
21
|
-
|
|
22
|
-
## Input
|
|
23
|
-
- **Request (what you want to do)**
|
|
24
|
-
- **Completion criteria (measurable)**
|
|
25
|
-
|
|
26
|
-
### Optional (fill in what you can)
|
|
27
|
-
- slug (ticket/short identifier)
|
|
28
|
-
- Constraints
|
|
29
|
-
- Integration test (DB): `yes` | `no` | `unknown`
|
|
30
|
-
- Post-integration DB cleanup: `down-volumes` | `down` | `none`
|
|
31
|
-
|
|
32
|
-
## Output
|
|
33
|
-
- **Execution log**: preflight/quality-gate results (pass/fail, log file path)
|
|
34
|
-
- **Change summary**: What, why, where
|
|
35
|
-
- **Test results**: Commands executed and results
|
|
36
|
-
- **PR body (final)**: Markdown with all template fields filled
|
|
37
|
-
- **PR creation metadata**: base/head/title/body (for GitHub MCP PR creation)
|
|
38
|
-
|
|
39
|
-
## Rules (SSOT)
|
|
40
|
-
- Spec is the SSOT for specifications. If ambiguous, ask questions first to clarify
|
|
41
|
-
{{#if backend}}- Backend dependency direction: {{backend.dependency_direction}}{{/if}}
|
|
42
|
-
- Front separates UI and side effects (into hooks/services)
|
|
43
|
-
{{#if frontend}}- At minimum for frontend changes, run `{{frontend.build_command}}`{{/if}}
|
|
44
|
-
- Do not edit CI/CD configurations
|
|
45
|
-
- **Tests run inside Docker containers** — use `docker compose --profile test run --rm <service>-test` for each project. Never run tests directly on the host
|
|
46
|
-
|
|
47
|
-
## Branch Management (Mandatory — execute BEFORE any code changes)
|
|
48
|
-
1. Run `git branch --show-current` to check the current branch
|
|
49
|
-
2. Run `git remote show origin | grep 'HEAD branch'` (or equivalent) to identify the default branch (e.g. `main`, `master`)
|
|
50
|
-
3. **If the current branch IS the default branch**:
|
|
51
|
-
- Create a new feature branch and switch to it **before making any changes**
|
|
52
|
-
- Branch naming convention: `feat/<slug-or-task-summary>-<YYYYMMDD>`
|
|
53
|
-
- If `slug` is provided → use it (e.g. `feat/add-auth-20260212`)
|
|
54
|
-
- If no slug → derive a short kebab-case summary from the task description (max 5 words, e.g. `feat/fix-login-validation-20260212`)
|
|
55
|
-
- Date is the current date in `YYYYMMDD` format
|
|
56
|
-
- Command: `git checkout -b feat/<branch-name>`
|
|
57
|
-
- Inform the developer that a new branch was created and why
|
|
58
|
-
4. **If already on a feature branch** → continue on the current branch (no action needed)
|
|
59
|
-
|
|
60
|
-
## Agent Workflow (Required — Follow This Exact Sequence)
|
|
61
|
-
|
|
62
|
-
### Phase 0: Branch Check
|
|
63
|
-
Execute "Branch Management" above — always first, before any code changes.
|
|
64
|
-
|
|
65
|
-
### Phase 1: Pre-work Analysis (MUST — Do Not Skip)
|
|
66
|
-
Before writing any code, analyze and present to the user:
|
|
67
|
-
|
|
68
|
-
1. **Goal & completion criteria** — Restate the request in measurable terms
|
|
69
|
-
2. **Existing structure & constraints** — Review relevant code, patterns, and dependencies
|
|
70
|
-
3. **Impact scope & risks** — Which modules/layers are affected? What could break?
|
|
71
|
-
4. **Implementation approach** — Choose and justify your approach (standard / conservative / bold)
|
|
72
|
-
5. **Open questions** — If anything is unclear, ask NOW (do not proceed with assumptions)
|
|
73
|
-
|
|
74
|
-
If open questions exist, **stop and present them to the user** using the Question Template before continuing.
|
|
75
|
-
|
|
76
|
-
### Phase 2: Spec & Test Design (ATDD — MUST for new features)
|
|
77
|
-
1. Verify/supplement Spec (create/update if needed)
|
|
78
|
-
2. **Define acceptance criteria** in Given-When-Then format for the requested change
|
|
79
|
-
3. **Write acceptance tests FIRST** (Red phase — tests should fail because the feature doesn't exist yet)
|
|
80
|
-
- For bug fixes: write a reproduction test first
|
|
81
|
-
- For refactoring: ensure existing tests cover the area, or add characterization tests first
|
|
82
|
-
|
|
83
|
-
### Phase 3: Implementation
|
|
84
|
-
1. Impact analysis → Split Front/Back branches/PRs if necessary
|
|
85
|
-
2. Run preflight (opt-in DB→API→migration→integration if needed, cleanup policy per SSOT)
|
|
86
|
-
3. Implement (Self-documenting code, minimal Why comments)
|
|
87
|
-
- Implement failure paths first, then happy path
|
|
88
|
-
- Apply early returns to keep nesting shallow
|
|
89
|
-
- 1 commit = 1 responsibility — keep changes focused
|
|
90
|
-
4. **Make acceptance tests pass** (Green phase)
|
|
91
|
-
5. Refactor if needed — tests remain as regression suite
|
|
92
|
-
|
|
93
|
-
### Phase 4: Quality Assurance
|
|
94
|
-
1. Run quality-gate
|
|
95
|
-
{{#if quality_gate}}{{#if quality_gate.frontend}} - Frontend: `{{quality_gate.frontend}}`
|
|
96
|
-
{{/if}}{{#if quality_gate.backend}} - Backend: `{{quality_gate.backend}}`
|
|
97
|
-
{{/if}}{{/if}}
|
|
98
|
-
2. **Continue fixing until all tests pass** — do not give up
|
|
99
|
-
3. If tests cannot run: document reason, alternative verification, and remaining risks
|
|
100
|
-
|
|
101
|
-
### Phase 5: Commit & PR
|
|
102
|
-
1. Follow "End-of-Work Commit Strategy" below
|
|
103
|
-
2. Generate PR body (fully template-compliant, fact-based)
|
|
104
|
-
3. Prepare PR creation metadata for GitHub MCP
|
|
105
|
-
|
|
106
|
-
## End-of-Work Commit Strategy (Mandatory — execute AFTER implementation is complete)
|
|
107
|
-
When all implementation and quality-gate checks are done:
|
|
108
|
-
1. Run `git status` and `git diff` to review all changes
|
|
109
|
-
2. **Group changes into logical commit units** (1 commit = 1 responsibility):
|
|
110
|
-
- Separate by concern: schema/migration, backend logic, frontend UI, tests, config, docs
|
|
111
|
-
- Each commit should be independently reviewable and revertable
|
|
112
|
-
- Do NOT create a single monolithic commit for all changes
|
|
113
|
-
3. For each logical unit:
|
|
114
|
-
- Stage only the relevant files: `git add <specific-files>`
|
|
115
|
-
- Write a clear commit message (short first line, body with reason/impact/verification)
|
|
116
|
-
4. Verify with `git log --oneline -n <N>` that the commit history is clean and readable
|
|
117
|
-
5. Inform the developer of the commits created and their scope
|
|
118
|
-
|
|
119
|
-
{{#if frontend.mindset}}
|
|
120
|
-
## Frontend Mindset
|
|
121
|
-
{{{frontend.mindset}}}
|
|
122
|
-
{{/if}}
|
|
123
|
-
|
|
124
|
-
{{#if backend.mindset}}
|
|
125
|
-
## Backend Mindset
|
|
126
|
-
{{{backend.mindset}}}
|
|
127
|
-
{{/if}}
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
{{> ssot-header }}
|
|
2
|
-
{{> godd-core }}
|
|
3
|
-
{{> ssot-rules }}
|
|
4
|
-
{{> project-context }}
|
|
5
|
-
|
|
6
|
-
## Purpose
|
|
7
|
-
|
|
8
|
-
プロジェクトに `docs/` フォルダ構造をテンプレートから生成する。
|
|
9
|
-
GoDD Notes(テキストノート / テーブルノート / drawio)で閲覧・編集可能なドキュメント初期構造を作成する。
|
|
10
|
-
|
|
11
|
-
## docs/ フォルダ構成(テンプレート)
|
|
12
|
-
|
|
13
|
-
以下の構造を生成すること:
|
|
14
|
-
|
|
15
|
-
```
|
|
16
|
-
docs/
|
|
17
|
-
├── README.md # docs 全体の入口・構成説明
|
|
18
|
-
├── 001_project/
|
|
19
|
-
│ ├── README.md # プロジェクト概要(背景・目的・プロダクト・システム構成・用語)
|
|
20
|
-
│ ├── pages.csv # 各プロダクトの画面一覧(テーブルノート)と各画面の概要
|
|
21
|
-
│ ├── features.csv # 画面ごとの機能一覧(テーブルノート)と各機能の概要
|
|
22
|
-
│ └── tasks.csv # 開発チームからの質問リストと要件定義チームからの要望一覧
|
|
23
|
-
├── 002_business_flow/
|
|
24
|
-
│ ├── README.md # ビジネスフロー概要、フォルダ内で整理するビジネスフロー一覧
|
|
25
|
-
│ ├── business_flow_name.template.md # 特定業務のビジネスフローを解説
|
|
26
|
-
│ └── business_flow_name.template.drawio # 特定業務のビジネスフローを図示
|
|
27
|
-
├── 003_requirements/
|
|
28
|
-
│ ├── README.md # フォルダの説明、フォルダ内で整理するrequirements一覧
|
|
29
|
-
│ ├── requirements.template.md # 概要、背景、ユーザーストーリー、画面要件、機能要件、機能詳細、非機能要件、備考
|
|
30
|
-
│ ├── <Product Name>/ # 管理画面、ユーザー向け画面などプロダクトごとにフォルダ作成
|
|
31
|
-
│ │ └── <feature_name>.md # 機能別の要件定義
|
|
32
|
-
│ └── spec/ # 仕様 SSOT(API仕様、インフラ仕様、言語仕様等)
|
|
33
|
-
├── 004_pages/ # 画面設計
|
|
34
|
-
│ ├── README.md # フォルダの説明
|
|
35
|
-
│ └── app/ # 画面のURLパスを整理するため、Reactの app/ ディレクトリを配置
|
|
36
|
-
│ ├── admin/
|
|
37
|
-
│ │ └── corporations/
|
|
38
|
-
│ │ └── requirements.md # 画面ごとの画面要件を記載
|
|
39
|
-
│ └── users/
|
|
40
|
-
├── 005_architecture/ # 開発をするにあたっての実際の設計(インフラ、DB、API、各機能の設計)
|
|
41
|
-
│ ├── README.md # フォルダの説明
|
|
42
|
-
│ ├── stacks/ # 技術スタック
|
|
43
|
-
│ ├── api/ # APIのSwaggerなど
|
|
44
|
-
│ ├── db/ # DB設計(ER図など)
|
|
45
|
-
│ ├── infra/ # インフラアーキテクチャの設計
|
|
46
|
-
│ └── features/ # 各機能の設計
|
|
47
|
-
│ └── feature.template.md # 機能設計書、データフロー、DB設計などを記載
|
|
48
|
-
├── 006_development_workflow/ # 開発のルールやワークフローなどについて
|
|
49
|
-
│ ├── README.md # フォルダの説明
|
|
50
|
-
│ ├── git.md # Gitルール
|
|
51
|
-
│ └── workflow.md # 開発ワークフロー
|
|
52
|
-
└── 007_guides/ # ガイド集
|
|
53
|
-
├── README.md # フォルダの説明
|
|
54
|
-
├── godd_notes_getting_started.md # GoDD Notes 使い始め方(初期セットアップ/ログイン/編集/Issue・PR作成)
|
|
55
|
-
├── godd_notes_usage.md # GoDD Notesの利用方法(編集操作リファレンス)
|
|
56
|
-
├── release-procedure.md # canary 自動リリース・production 手動リリースの手順
|
|
57
|
-
├── ci-cd-guide.md # CI/CDパイプライン全体像・主要ワークフロー・手動実行・失敗確認
|
|
58
|
-
├── godd_usage.md # GoDD のコマンド一覧、ツール一覧、利用方法
|
|
59
|
-
├── setup_godd.md # GoDD の始め方
|
|
60
|
-
├── setup_godd_notes.md # GoDD Notesの構築方法(ローカル構築〜デプロイ)
|
|
61
|
-
├── setup_infra.md # インフラのCI/CDの構築ガイド
|
|
62
|
-
└── setup_local_environment.md # ローカル環境構築ガイド
|
|
63
|
-
```
|
|
64
|
-
|
|
65
|
-
## ルール
|
|
66
|
-
|
|
67
|
-
1. プロジェクトスキャン結果と入力パラメータ(プロジェクト名、ロール、画面ID)を使って各ファイルの内容を生成
|
|
68
|
-
2. CSV ファイルはヘッダー行 + サンプル行を含める
|
|
69
|
-
3. README.md は Mermaid ダイアグラムを含める(適切な場合)
|
|
70
|
-
4. 既に `docs/` が存在する場合は既存構造を尊重し、不足分のみ追加
|
|
71
|
-
5. 各ファイルの先頭にファイルの目的を1行コメントで記載
|
|
72
|
-
6. `007_guides/godd_notes_getting_started.md` は「初期セットアップ・ログイン・ファイル編集・Issue/PR 作成」の 4 ステップをカバーし、GoDD Notes を初めて使うユーザーが迷わず操作できる導線を提供する
|
|
73
|
-
7. `007_guides/release-procedure.md` は「canary 自動リリース(main マージ時)」と「production 手動リリース(Actions 手動実行)」の両フローを説明し、必要な Secrets・確認コマンド・トラブルシューティングを含める
|
|
74
|
-
8. `007_guides/ci-cd-guide.md` は「CI/CD 全体像・主要ワークフロー一覧・手動実行手順・失敗時の確認ポイント」を含め、PR から本番デプロイまでのフローを一覧できる
|
|
75
|
-
|
|
76
|
-
## CSV ヘッダー定義
|
|
77
|
-
|
|
78
|
-
### tasks.csv
|
|
79
|
-
```
|
|
80
|
-
id,type,product,category,subject,detail,created_by,created_at,priority,deadline,status,issue,remarks
|
|
81
|
-
```
|
|
82
|
-
|
|
83
|
-
### features.csv
|
|
84
|
-
```
|
|
85
|
-
機能ID,機能名,概要,phase,優先度,ステータス
|
|
86
|
-
```
|
|
87
|
-
|
|
88
|
-
### pages.csv
|
|
89
|
-
```
|
|
90
|
-
画面ID,画面名,概要,提供フェーズ,関連機能ID,ステータス
|
|
91
|
-
```
|
|
92
|
-
|
|
93
|
-
### tables.csv
|
|
94
|
-
```
|
|
95
|
-
テーブル名,カラム名,型,制約,説明
|
|
96
|
-
```
|
|
97
|
-
|
|
98
|
-
## 出力
|
|
99
|
-
|
|
100
|
-
- 生成した全ファイルのパスと内容
|
|
101
|
-
- 生成理由の簡潔な説明
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
{{> ssot-header }}
|
|
2
|
-
{{> godd-core }}
|
|
3
|
-
{{> ssot-rules }}
|
|
4
|
-
{{> project-context }}
|
|
5
|
-
|
|
6
|
-
## Purpose
|
|
7
|
-
|
|
8
|
-
コード変更後に `docs/` 内の関連ドキュメント(MD/CSV)を同期・更新する。
|
|
9
|
-
変更内容から影響するドキュメントを特定し、更新差分を提案する。
|
|
10
|
-
|
|
11
|
-
## 対象ドキュメント構造
|
|
12
|
-
|
|
13
|
-
```
|
|
14
|
-
docs/
|
|
15
|
-
├── 001_project/ # プロジェクト概要、機能要件、画面要件
|
|
16
|
-
├── 002_business_flow/ # ビジネスフロー
|
|
17
|
-
├── 003_requirements/ # 要件定義
|
|
18
|
-
├── 004_pages/ # 画面設計
|
|
19
|
-
├── 005_architecture/ # 詳細設計(インフラ/DB/API/機能別)
|
|
20
|
-
├── 006_development_workflow/ # 開発ルール・ワークフロー
|
|
21
|
-
└── 007_guides/ # 利用・構築・運用ガイド
|
|
22
|
-
```
|
|
23
|
-
|
|
24
|
-
## ルール
|
|
25
|
-
|
|
26
|
-
1. 変更内容を分析し、影響を受ける docs/ セクション(001-007)を特定する
|
|
27
|
-
2. 各セクションの既存ドキュメントを確認し、更新が必要な箇所を特定する
|
|
28
|
-
3. MD ファイルの更新差分を提案する(追記/修正ポイントを明確に)
|
|
29
|
-
4. CSV ファイルに行の追加/更新が必要な場合は具体的な行内容を提示する
|
|
30
|
-
5. Mermaid ダイアグラムが古くなっている場合は更新版を提案する
|
|
31
|
-
6. **既存の内容を壊さない**ように差分のみ提案する
|
|
32
|
-
|
|
33
|
-
## 影響マッピング
|
|
34
|
-
|
|
35
|
-
| コード変更種別 | 影響するセクション |
|
|
36
|
-
|---|---|
|
|
37
|
-
| 新機能追加 | 001 (features.csv), 003 (requirements), 006 (features/) |
|
|
38
|
-
| API 変更 | 005 (api/), 003 (requirements) |
|
|
39
|
-
| DB スキーマ変更 | 005 (db/) |
|
|
40
|
-
| 画面追加/変更 | 001 (pages.csv), 004 (app/) |
|
|
41
|
-
| インフラ変更 | 005 (infra/) |
|
|
42
|
-
| アーキテクチャ変更 | 005 (architecture.md) |
|
|
43
|
-
| 開発フロー変更 | 006 (workflow.md, git.md) |
|
|
44
|
-
| ビジネスフロー変更 | 002 (business_flow/) |
|
|
45
|
-
|
|
46
|
-
## 出力
|
|
47
|
-
|
|
48
|
-
1. 影響を受けるドキュメント一覧(ファイルパス)
|
|
49
|
-
2. 各ドキュメントの追記/修正ポイント(箇条書き)
|
|
50
|
-
3. 具体的な更新内容(差分形式)
|
|
51
|
-
4. 参照切れチェック結果
|