@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,125 +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
|
-
Execute **default branch sync → new branch creation → commit with proper granularity** as a unified workflow. The developer only needs to provide the branch name and purpose.
|
|
17
|
-
|
|
18
|
-
## References (detailed specs for each step)
|
|
19
|
-
- sync: `godd_sync` tool
|
|
20
|
-
- new-branch: `godd_new_branch` tool
|
|
21
|
-
- commit: `godd_commit` tool
|
|
22
|
-
|
|
23
|
-
## Input
|
|
24
|
-
- **branch_name** (required): Branch name to create (follows naming convention from `godd_new_branch`)
|
|
25
|
-
- **purpose** (optional): What the branch is for (improves commit message accuracy)
|
|
26
|
-
- **auto_confirm** (optional, default: false): When true, skip all user confirmations and execute the entire workflow automatically
|
|
27
|
-
|
|
28
|
-
## Auto-confirm Mode
|
|
29
|
-
{{#if auto_confirm}}
|
|
30
|
-
**auto_confirm is ENABLED** — All phases run without user confirmation. Conflicts are resolved by Agent's best judgment. Commit plans are executed immediately. Results are reported afterward.
|
|
31
|
-
{{else}}
|
|
32
|
-
**auto_confirm is DISABLED (default)** — Each phase pauses for user confirmation when decisions are needed.
|
|
33
|
-
{{/if}}
|
|
34
|
-
|
|
35
|
-
## Agent Steps (MUST)
|
|
36
|
-
|
|
37
|
-
### Phase 1: Default Branch Sync (sync)
|
|
38
|
-
|
|
39
|
-
1. Run `git status` to check for uncommitted changes
|
|
40
|
-
2. If uncommitted changes exist, run `git stash --include-untracked`
|
|
41
|
-
3. Run `git fetch origin main` to get remote latest
|
|
42
|
-
4. Run `git merge origin/main` to sync
|
|
43
|
-
- On conflict: Resolve using SSOT-priority policy (SSOT-compliant side first; integrate if both comply; ask user if uncertain)
|
|
44
|
-
5. If stashed, run `git stash pop` to restore (resolve conflicts if any)
|
|
45
|
-
|
|
46
|
-
{{#if auto_confirm}}
|
|
47
|
-
**Auto-confirm**: Agent resolves conflicts by best judgment and continues to Phase 2
|
|
48
|
-
{{else}}
|
|
49
|
-
**Abort condition**: If conflict resolution requires user confirmation, do NOT proceed to Phase 2 — wait for user input
|
|
50
|
-
{{/if}}
|
|
51
|
-
|
|
52
|
-
### Phase 2: New Branch Creation (new-branch)
|
|
53
|
-
|
|
54
|
-
1. If uncommitted changes exist, run `git stash --include-untracked`
|
|
55
|
-
2. Run `git checkout -b <branch_name> origin/main` to create and switch
|
|
56
|
-
- Phase 1 already synced main, so the latest main is the base
|
|
57
|
-
3. If stashed, run `git stash pop` to restore (resolve conflicts if any)
|
|
58
|
-
|
|
59
|
-
{{#if auto_confirm}}
|
|
60
|
-
**Auto-confirm**: If a branch with the same name already exists, delete it and recreate
|
|
61
|
-
{{else}}
|
|
62
|
-
**Abort condition**: If a branch with the same name already exists, ask the user
|
|
63
|
-
{{/if}}
|
|
64
|
-
|
|
65
|
-
### Phase 3: Commit with Proper Granularity (commit)
|
|
66
|
-
|
|
67
|
-
1. Run `git status` / `git diff` to review changes
|
|
68
|
-
- **If no changes**: Report "No changes to commit. Branch creation and sync complete." and exit
|
|
69
|
-
2. Classify changed files by **hard scope** (frontend / backend / repo-root) and create a commit plan by responsibility unit
|
|
70
|
-
3. Present the commit plan to the user and wait for approval
|
|
71
|
-
4. After approval, execute commits one by one following the plan
|
|
72
|
-
|
|
73
|
-
{{#if auto_confirm}}
|
|
74
|
-
**Auto-confirm**: Skip approval and execute commits immediately after creating the plan
|
|
75
|
-
{{else}}
|
|
76
|
-
**Abort condition**: Commit plan requires user approval (never auto-execute)
|
|
77
|
-
{{/if}}
|
|
78
|
-
|
|
79
|
-
## Flow Overview
|
|
80
|
-
|
|
81
|
-
```
|
|
82
|
-
[Start]
|
|
83
|
-
|
|
|
84
|
-
v
|
|
85
|
-
Phase 1: sync (merge latest main)
|
|
86
|
-
| |- Conflict -> resolve or abort for user confirmation
|
|
87
|
-
| '- Success
|
|
88
|
-
v
|
|
89
|
-
Phase 2: new-branch (create branch)
|
|
90
|
-
| |- Same name exists -> abort for user confirmation
|
|
91
|
-
| '- Success
|
|
92
|
-
v
|
|
93
|
-
Phase 3: commit (responsibility-unit commits)
|
|
94
|
-
| |- No changes -> report completion
|
|
95
|
-
| |- Changes exist -> present commit plan -> wait for approval
|
|
96
|
-
| '- After approval -> execute commits
|
|
97
|
-
v
|
|
98
|
-
[Complete]
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
## Output
|
|
102
|
-
Report results progressively for each phase:
|
|
103
|
-
|
|
104
|
-
### Phase 1 Result
|
|
105
|
-
- Sync result: Success / Conflicts resolved / Already up to date
|
|
106
|
-
- Number of commits synced
|
|
107
|
-
|
|
108
|
-
### Phase 2 Result
|
|
109
|
-
- Created branch name
|
|
110
|
-
- Base point (origin/main commit hash)
|
|
111
|
-
- Stash restore result
|
|
112
|
-
|
|
113
|
-
### Phase 3 Result
|
|
114
|
-
- Commit plan (for user review)
|
|
115
|
-
- Execution result: Each commit hash and message
|
|
116
|
-
- Final state: `git status` / `git log --oneline -5`
|
|
117
|
-
|
|
118
|
-
### Final Summary
|
|
119
|
-
```
|
|
120
|
-
[git-workflow complete]
|
|
121
|
-
- Sync: Merged N commits from latest main
|
|
122
|
-
- Branch: Created <branch_name> (base: <hash>)
|
|
123
|
-
- Commits: Executed N commits
|
|
124
|
-
- State: Clean / Uncommitted changes remain
|
|
125
|
-
```
|
|
@@ -1,43 +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
|
-
{{> cogito-root-daily }}
|
|
15
|
-
|
|
16
|
-
## Purpose
|
|
17
|
-
Identify the blast radius before making changes and prevent oversights.
|
|
18
|
-
Evaluate from **all perspectives**: functional, performance, UX, security, and operational impact.
|
|
19
|
-
|
|
20
|
-
## Input
|
|
21
|
-
- Change summary (what / why)
|
|
22
|
-
- Target modules ({{#each stacks}}{{this.label}}{{#unless @last}} / {{/unless}}{{/each}})
|
|
23
|
-
- Whether breaking changes exist
|
|
24
|
-
|
|
25
|
-
## Analysis Framework
|
|
26
|
-
For each affected area, evaluate:
|
|
27
|
-
1. **Direct impact**: What changes and why
|
|
28
|
-
2. **Indirect impact**: What could be affected as a side effect
|
|
29
|
-
3. **Risk level**: HIGH / MEDIUM / LOW with justification
|
|
30
|
-
4. **Mitigation**: How to reduce or eliminate the risk
|
|
31
|
-
5. **Rollback plan**: How to undo the change if something goes wrong
|
|
32
|
-
|
|
33
|
-
## Output
|
|
34
|
-
Markdown filling in each section of the impact-analysis template:
|
|
35
|
-
- **Change overview**: What is being changed and why
|
|
36
|
-
- **Affected modules/components**: List with impact type (direct/indirect)
|
|
37
|
-
- **Breaking changes**: Yes/No, details if Yes
|
|
38
|
-
- **Migration requirements**: Steps needed for existing data/users
|
|
39
|
-
- **Rollback plan**: Step-by-step reversal procedure
|
|
40
|
-
- **Risk matrix**: Impact × likelihood for each identified risk
|
|
41
|
-
- **Test requirements**: What needs to be tested to verify the change is safe
|
|
42
|
-
|
|
43
|
-
Mark unclear items as **TBD** and list questions at the end using the Question Template.
|
|
@@ -1,40 +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
|
-
Install and activate the specified tool/MCP server with environment-appropriate procedures.
|
|
15
|
-
|
|
16
|
-
## Supported Tools
|
|
17
|
-
- **Context7**: Official pattern reference MCP
|
|
18
|
-
- **Chrome DevTools MCP**: Browser debugging support (DevTools integration)
|
|
19
|
-
- **MarkItDown MCP**: Document conversion (PDF/Office → Markdown)
|
|
20
|
-
- **MCP OCR**: OCR (image/PDF text extraction)
|
|
21
|
-
- **Serena**: Reference tracking/safe editing MCP
|
|
22
|
-
- **Vibe ODF Read MCP**: ODF (.odt etc.) reading
|
|
23
|
-
- Any other user-specified tool
|
|
24
|
-
|
|
25
|
-
## Input (fill by asking)
|
|
26
|
-
- Tool name to install
|
|
27
|
-
- OS (Windows/macOS/Linux)
|
|
28
|
-
- Network constraints (internal/proxy)
|
|
29
|
-
- Cursor MCP config scope (workspace/user)
|
|
30
|
-
|
|
31
|
-
## Output
|
|
32
|
-
- **Installation steps** (commands in copy-paste-ready format)
|
|
33
|
-
- **Activation/connectivity verification** steps
|
|
34
|
-
- **Common failure points** and workarounds
|
|
35
|
-
- **Operational rules** (when to use / when not to use)
|
|
36
|
-
|
|
37
|
-
## Rules
|
|
38
|
-
- Do not guess when prerequisites are unclear. Ask the user first
|
|
39
|
-
- Installation commands are highly environment-dependent; always confirm OS/network constraints
|
|
40
|
-
- Include an example of adding to Cursor's MCP config (`.cursor/mcp.json`)
|
|
@@ -1,61 +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
|
-
Safely stash any in-progress changes, create a new branch from the latest default branch, and restore the stashed changes. The developer only needs to provide the branch name (or purpose).
|
|
17
|
-
|
|
18
|
-
## Input
|
|
19
|
-
- **branch_name** (required): The branch name to create. If not provided, the Agent proposes one based on the purpose and asks for confirmation
|
|
20
|
-
- **base_branch** (optional): Base branch to create from. Defaults to `origin/main`
|
|
21
|
-
|
|
22
|
-
### Branch Naming Convention
|
|
23
|
-
- Feature: `feat/<slug>`
|
|
24
|
-
- UI implementation: `feat/<slug>-frontend` / `feat/<slug>-backend` (Front/Back separation required)
|
|
25
|
-
- Bug fix: `fix/<slug>`
|
|
26
|
-
- Documentation: `docs/<slug>`
|
|
27
|
-
- Refactoring: `refactor/<slug>`
|
|
28
|
-
- Other: `chore/<slug>`
|
|
29
|
-
|
|
30
|
-
## Agent Steps (MUST)
|
|
31
|
-
|
|
32
|
-
### Step 1: Check Current State
|
|
33
|
-
1. Run `git status` to check for uncommitted changes (staged / unstaged / untracked)
|
|
34
|
-
2. Record the current branch name via `git branch --show-current`
|
|
35
|
-
|
|
36
|
-
### Step 2: Stash Changes (only if uncommitted changes exist)
|
|
37
|
-
1. Run `git stash --include-untracked` to stash all changes
|
|
38
|
-
2. Verify stash succeeded (`git stash list` shows the entry at top)
|
|
39
|
-
- **If no changes**: Skip stash, proceed to Step 3
|
|
40
|
-
|
|
41
|
-
### Step 3: Fetch Remote and Create Branch
|
|
42
|
-
1. Run `git fetch origin` to update remote
|
|
43
|
-
2. Run `git checkout -b <branch_name> <base_branch>` to create and switch to the new branch
|
|
44
|
-
- If base_branch not specified: `git checkout -b <branch_name> origin/main`
|
|
45
|
-
- If a branch with the same name already exists: Ask the user (overwrite or rename)
|
|
46
|
-
|
|
47
|
-
### Step 4: Restore Stashed Changes (only if stashed)
|
|
48
|
-
1. Run `git stash pop` to restore stashed changes
|
|
49
|
-
2. Check result:
|
|
50
|
-
- **Success**: Complete
|
|
51
|
-
- **Conflict**: Report conflicted files and resolve:
|
|
52
|
-
- **Keep SSOT-compliant side**: If one side adheres to SSOT, adopt it
|
|
53
|
-
- **Both compliant and integrable**: Integrate both
|
|
54
|
-
- **Uncertain**: Ask the user (never guess)
|
|
55
|
-
|
|
56
|
-
## Output
|
|
57
|
-
- **Created branch name**: Full branch name
|
|
58
|
-
- **Base**: Which branch/commit it was created from
|
|
59
|
-
- **Previous branch**: Branch name before switching
|
|
60
|
-
- **Stash restore result**: Success / Conflicts / Not needed
|
|
61
|
-
- **Current state**: `git status` summary
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
{{> ssot-header }}
|
|
2
|
-
{{> godd-core }}
|
|
3
|
-
{{> project-context }}
|
|
4
|
-
|
|
5
|
-
## Purpose
|
|
6
|
-
|
|
7
|
-
GoDD Notes(notes-app / notes-api)をデプロイする。
|
|
8
|
-
AI エージェントが自律的にデプロイを完了できる手順を提供する。
|
|
9
|
-
|
|
10
|
-
## アーキテクチャ
|
|
11
|
-
|
|
12
|
-
```
|
|
13
|
-
notes-app (React + Vite) ──proxy──▶ notes-api (FastAPI) ──▶ GitHub API
|
|
14
|
-
:5175 :8000
|
|
15
|
-
```
|
|
16
|
-
|
|
17
|
-
## AI 向けデプロイフロー(推奨)
|
|
18
|
-
|
|
19
|
-
### フロー選択
|
|
20
|
-
|
|
21
|
-
| 条件 | 使うコマンド |
|
|
22
|
-
|------|-------------|
|
|
23
|
-
| ローカルで試す / 開発環境 | `godd notes compose --auto` |
|
|
24
|
-
| 設定をカスタマイズしたい | `godd notes compose --config <path>` |
|
|
25
|
-
| AWS にデプロイ | `godd notes deploy -y` |
|
|
26
|
-
| インフラとアプリ雛形を新規構築 | `godd notes infra` |
|
|
27
|
-
|
|
28
|
-
### A. ローカルデプロイ(最も簡単)
|
|
29
|
-
|
|
30
|
-
**前提**: Docker が起動していること
|
|
31
|
-
|
|
32
|
-
**ステップ 1**: 環境変数を設定
|
|
33
|
-
|
|
34
|
-
```bash
|
|
35
|
-
export GITHUB_TOKEN=ghp_xxx
|
|
36
|
-
export GITHUB_OWNER=owner
|
|
37
|
-
export GITHUB_REPO=repo
|
|
38
|
-
```
|
|
39
|
-
|
|
40
|
-
**ステップ 2**: 自動デプロイ
|
|
41
|
-
|
|
42
|
-
```bash
|
|
43
|
-
godd notes compose --auto
|
|
44
|
-
```
|
|
45
|
-
|
|
46
|
-
これで以下が自動実行される:
|
|
47
|
-
1. デフォルト設定で `.env` 生成(DB パスワード・JWT シークレット等は自動生成)
|
|
48
|
-
2. notes-api / notes-app / PostgreSQL を Docker Compose で起動
|
|
49
|
-
3. ヘルスチェック待機
|
|
50
|
-
|
|
51
|
-
**ステップ 3**: 状態確認
|
|
52
|
-
|
|
53
|
-
```bash
|
|
54
|
-
godd notes status
|
|
55
|
-
```
|
|
56
|
-
|
|
57
|
-
**カスタム設定が必要な場合**:
|
|
58
|
-
|
|
59
|
-
```bash
|
|
60
|
-
# 設定ファイルを作成
|
|
61
|
-
cat > notes-config.json << 'EOF'
|
|
62
|
-
{
|
|
63
|
-
"deployDir": "./godd-notes",
|
|
64
|
-
"githubToken": "ghp_xxx",
|
|
65
|
-
"githubOwner": "owner",
|
|
66
|
-
"githubRepo": "repo",
|
|
67
|
-
"githubBranch": "main",
|
|
68
|
-
"postgresPort": "5432",
|
|
69
|
-
"notesApiPort": "3100",
|
|
70
|
-
"notesAppPort": "5175"
|
|
71
|
-
}
|
|
72
|
-
EOF
|
|
73
|
-
|
|
74
|
-
godd notes compose --config notes-config.json
|
|
75
|
-
```
|
|
76
|
-
|
|
77
|
-
### B. AWS デプロイ
|
|
78
|
-
|
|
79
|
-
**前提**:
|
|
80
|
-
- AWS CLI でログイン済み(`aws sts get-caller-identity` が成功すること)
|
|
81
|
-
- `godd notes infra` でインフラ構築済み
|
|
82
|
-
- `notes-api/` と `notes-app/` がデプロイ対象ルートに存在すること
|
|
83
|
-
- `.godd-notes-infra.json` が存在すること
|
|
84
|
-
|
|
85
|
-
```bash
|
|
86
|
-
godd notes deploy -y
|
|
87
|
-
```
|
|
88
|
-
|
|
89
|
-
デプロイ後の確認:
|
|
90
|
-
|
|
91
|
-
```bash
|
|
92
|
-
godd notes status
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### C. デプロイ後の確認
|
|
96
|
-
|
|
97
|
-
```bash
|
|
98
|
-
# ヘルスチェック
|
|
99
|
-
curl http://localhost:3100/api/health
|
|
100
|
-
|
|
101
|
-
# ログイン確認
|
|
102
|
-
curl -X POST http://localhost:3100/api/auth/login \
|
|
103
|
-
-H "Content-Type: application/json" \
|
|
104
|
-
-d '{"username":"admin","password":"<生成されたパスワード>"}'
|
|
105
|
-
```
|
|
106
|
-
|
|
107
|
-
## 人間に委譲が必要な操作
|
|
108
|
-
|
|
109
|
-
以下は AI では自動化できない。人間に依頼すること:
|
|
110
|
-
|
|
111
|
-
1. **GitHub Token の発行**: https://github.com/settings/tokens
|
|
112
|
-
- スコープ: `repo`(プライベートリポジトリ)または `public_repo`(パブリック)
|
|
113
|
-
2. **AWS SSO ログイン**: `aws sso login --profile <profile>` → ブラウザ認証
|
|
114
|
-
3. **DNS 設定**: カスタムドメインの CNAME/A レコード設定
|
|
115
|
-
4. **初回 Terraform apply**: `terraform init && terraform apply`(インフラ新規作成時)
|
|
116
|
-
|
|
117
|
-
## テスト実行(Docker 完全環境)
|
|
118
|
-
|
|
119
|
-
```bash
|
|
120
|
-
docker compose --profile test run --rm notes-api-test
|
|
121
|
-
docker compose --profile test run --rm notes-app-test
|
|
122
|
-
```
|
|
123
|
-
|
|
124
|
-
## トラブルシューティング
|
|
125
|
-
|
|
126
|
-
| 症状 | 対処 |
|
|
127
|
-
|------|------|
|
|
128
|
-
| Docker not running | Docker Desktop を起動してもらう(人間に依頼) |
|
|
129
|
-
| GitHub Token 未設定 | 環境変数 `GITHUB_TOKEN` を設定 |
|
|
130
|
-
| ポート競合 | `--config` で別ポートを指定 |
|
|
131
|
-
| ECS デプロイ遅延 | `godd notes status` で安定化を確認(5-10分) |
|
|
132
|
-
| DB 接続エラー | `docker compose logs db` でログ確認 |
|
|
133
|
-
|
|
134
|
-
## 出力
|
|
135
|
-
|
|
136
|
-
- デプロイ完了報告(URL・管理者情報)
|
|
137
|
-
- 設定ファイル(`.godd-notes-compose.json` / `.godd-notes-infra.json`)
|
|
138
|
-
- ヘルスチェック結果
|
|
@@ -1,44 +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
|
-
Read the PR diff and organize **review perspectives / risks / additional information needed** (analysis).
|
|
17
|
-
|
|
18
|
-
> **Scope clarification**: This tool focuses on **analysis** — organizing the information a reviewer needs.
|
|
19
|
-
> PR body **generation** is handled by the dev workflow. This tool prepares the analytical foundation.
|
|
20
|
-
|
|
21
|
-
## Input
|
|
22
|
-
- Background / purpose of the change
|
|
23
|
-
- Change details (per file / feature)
|
|
24
|
-
- Blast radius ({{#each stacks}}{{this.label}}{{#unless @last}} / {{/unless}}{{/each}})
|
|
25
|
-
- Compatibility / migration requirements
|
|
26
|
-
- Verification (commands / manual steps)
|
|
27
|
-
|
|
28
|
-
## Analysis Perspectives
|
|
29
|
-
Evaluate each change through these lenses:
|
|
30
|
-
1. **Correctness**: Does the implementation match the spec/intent?
|
|
31
|
-
2. **Design**: Proper separation of concerns, dependency direction, SOLID
|
|
32
|
-
3. **Security**: Secret exposure, injection vectors, access control
|
|
33
|
-
4. **Performance**: N+1 queries, unnecessary full scans, missing indexes
|
|
34
|
-
5. **Operations**: Logging, error handling, migration safety, rollback path
|
|
35
|
-
6. **Test coverage**: Are changes adequately tested? Missing edge cases?
|
|
36
|
-
7. **Commit quality**: 1 commit = 1 responsibility? Clean history?
|
|
37
|
-
|
|
38
|
-
## Output
|
|
39
|
-
Return Markdown with the following structure:
|
|
40
|
-
- **Change summary**: What changed and why (1-3 sentences)
|
|
41
|
-
- **Risk assessment**: HIGH / MEDIUM / LOW for each area
|
|
42
|
-
- **Review focus areas**: Where reviewers should pay most attention
|
|
43
|
-
- **Questions to confirm**: Information gaps that need answers before merge
|
|
44
|
-
- **Suggested improvements**: Optional enhancements (not blockers)
|
|
@@ -1,125 +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
|
|
14
|
-
Create a **Pull Request** on GitHub with a well-structured body following the PR template (`docs/006_development_workflow/pr.template.md`). The Agent analyzes changes, generates PR content, and creates the PR.
|
|
15
|
-
|
|
16
|
-
## Auto-confirm Mode
|
|
17
|
-
{{#if auto_confirm}}
|
|
18
|
-
**auto_confirm is ENABLED** — Skip user review of the PR body. Create the PR immediately after generating content and report the URL afterward.
|
|
19
|
-
{{else}}
|
|
20
|
-
**auto_confirm is DISABLED (default)** — Present the generated PR body to the user for review before creating the PR.
|
|
21
|
-
{{/if}}
|
|
22
|
-
|
|
23
|
-
## Draft Mode
|
|
24
|
-
{{#if draft}}
|
|
25
|
-
**draft is ENABLED** — Create the PR as a Draft PR.
|
|
26
|
-
{{else}}
|
|
27
|
-
**draft is DISABLED (default)** — Create the PR as a regular (ready for review) PR.
|
|
28
|
-
{{/if}}
|
|
29
|
-
|
|
30
|
-
## PR Template (SSOT: `docs/006_development_workflow/pr.template.md`)
|
|
31
|
-
The PR body MUST follow this structure:
|
|
32
|
-
|
|
33
|
-
### TL;DR (3-7 lines)
|
|
34
|
-
- What / Why / How verified / Remaining risks (brief summary)
|
|
35
|
-
|
|
36
|
-
### Background / Purpose (Why)
|
|
37
|
-
- Reason for this change, prerequisites, issues, expected outcomes
|
|
38
|
-
|
|
39
|
-
### Changes (What)
|
|
40
|
-
- Bullet list at review-friendly granularity
|
|
41
|
-
|
|
42
|
-
### Impact Scope (Where)
|
|
43
|
-
- Front / Back / Agent / Infra / Docs-Scripts (list affected areas)
|
|
44
|
-
|
|
45
|
-
### Compatibility / Migration (Breaking?)
|
|
46
|
-
- Breaking changes: Yes / No
|
|
47
|
-
- Migration steps (if applicable)
|
|
48
|
-
- Rollback steps (if applicable)
|
|
49
|
-
|
|
50
|
-
### Verification (How verified)
|
|
51
|
-
- Commands executed (e.g., `pnpm quality-gate`)
|
|
52
|
-
- Manual checks (if applicable)
|
|
53
|
-
|
|
54
|
-
### Remaining Risks / Open Items (required)
|
|
55
|
-
- E.g., "integration tests not run without DB environment"
|
|
56
|
-
|
|
57
|
-
### Notes
|
|
58
|
-
- Monitoring / operational / constraint / background links
|
|
59
|
-
|
|
60
|
-
## Agent Steps (MUST)
|
|
61
|
-
|
|
62
|
-
### Step 1: Gather Information
|
|
63
|
-
1. Run `git branch --show-current` to get current branch name
|
|
64
|
-
2. Determine base branch:
|
|
65
|
-
- Use user-specified base branch if provided
|
|
66
|
-
- Default: `main`
|
|
67
|
-
3. Run `git log origin/<base>..HEAD --oneline` to list commits in the PR
|
|
68
|
-
- **If no commits**: Report "No commits to create PR for" and exit
|
|
69
|
-
4. Run `git diff origin/<base>...HEAD --stat` to get change summary
|
|
70
|
-
5. Run `git diff origin/<base>...HEAD` to analyze detailed changes
|
|
71
|
-
6. Check if the branch has been pushed to remote:
|
|
72
|
-
- Run `git ls-remote --heads origin <current-branch>`
|
|
73
|
-
- **If not pushed**: Report "Branch not pushed to remote. Run `godd_push_execute` first." and exit
|
|
74
|
-
|
|
75
|
-
### Step 2: Generate PR Content
|
|
76
|
-
1. Analyze the commits and diffs from Step 1
|
|
77
|
-
2. Generate a **PR title**:
|
|
78
|
-
- Use user-provided title if available
|
|
79
|
-
- Otherwise, derive from branch name and change summary
|
|
80
|
-
- Format: Concise description of the change (max 72 characters)
|
|
81
|
-
3. Generate **PR body** following the template structure above:
|
|
82
|
-
- Fill in ALL sections based on actual changes (do NOT leave placeholders)
|
|
83
|
-
- **TL;DR**: Summarize key changes in 3-7 bullet points
|
|
84
|
-
- **Background**: Derive from commit messages and context
|
|
85
|
-
- **Changes**: List all changes at appropriate granularity
|
|
86
|
-
- **Impact Scope**: Map changed files to areas (Front/Back/Agent/Infra/Docs)
|
|
87
|
-
- **Compatibility**: Check for breaking changes in API/schema/config
|
|
88
|
-
- **Verification**: List quality gate results and manual verification done
|
|
89
|
-
- **Remaining Risks**: Honestly assess what hasn't been verified
|
|
90
|
-
|
|
91
|
-
### Step 3: Present and Confirm
|
|
92
|
-
1. Present the generated PR title and body:
|
|
93
|
-
```
|
|
94
|
-
PR Title: <generated title>
|
|
95
|
-
Base: <base branch> ← Head: <current branch>
|
|
96
|
-
|
|
97
|
-
--- PR Body ---
|
|
98
|
-
<generated body>
|
|
99
|
-
```
|
|
100
|
-
{{#if auto_confirm}}
|
|
101
|
-
2. **Auto-confirm enabled**: Skip review and proceed directly to Step 4
|
|
102
|
-
{{else}}
|
|
103
|
-
2. Wait for user review and approval
|
|
104
|
-
- If modifications are requested, revise and re-present
|
|
105
|
-
{{/if}}
|
|
106
|
-
|
|
107
|
-
### Step 4: Create PR
|
|
108
|
-
1. Create the PR using `gh` CLI:
|
|
109
|
-
```
|
|
110
|
-
gh pr create --title "<title>" --base <base_branch> --head <current_branch> --body "<body>"{{#if draft}} --draft{{/if}}
|
|
111
|
-
```
|
|
112
|
-
- If `gh` is not available, provide the PR creation command and body for manual creation
|
|
113
|
-
2. Capture and report the PR URL
|
|
114
|
-
|
|
115
|
-
### Step 5: Post-creation
|
|
116
|
-
1. Report the PR URL
|
|
117
|
-
2. Run `gh pr view --json url,number,title,state` to verify creation
|
|
118
|
-
3. Suggest next steps (e.g., request reviewers, add labels)
|
|
119
|
-
|
|
120
|
-
## Output
|
|
121
|
-
- **PR title**: Generated or user-provided
|
|
122
|
-
- **PR body**: Complete PR template content
|
|
123
|
-
- **PR URL**: Link to the created PR
|
|
124
|
-
- **PR metadata**: Number, state, base/head branches
|
|
125
|
-
- **Warnings** (if applicable): Missing verification, large diff, etc.
|
|
@@ -1,83 +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
|
|
14
|
-
Execute **pre-submission checks** and then **push to remote** (`git push`). The Agent runs the full check-then-push flow.
|
|
15
|
-
|
|
16
|
-
## Auto-confirm Mode
|
|
17
|
-
{{#if auto_confirm}}
|
|
18
|
-
**auto_confirm is ENABLED** — Skip user confirmation after pre-submission checks pass. Push immediately and report results afterward.
|
|
19
|
-
{{else}}
|
|
20
|
-
**auto_confirm is DISABLED (default)** — After pre-submission checks pass, present results to the user and wait for confirmation before pushing.
|
|
21
|
-
{{/if}}
|
|
22
|
-
|
|
23
|
-
## Agent Steps (MUST)
|
|
24
|
-
|
|
25
|
-
### Step 1: Pre-flight Verification
|
|
26
|
-
1. Run `git status` to verify:
|
|
27
|
-
- Current branch is NOT the default branch (main/master) — **abort if on default branch**
|
|
28
|
-
- There are commits to push (compare with remote tracking branch)
|
|
29
|
-
- No uncommitted changes remain (warn if any exist)
|
|
30
|
-
2. Run `git log origin/<current-branch>..HEAD --oneline` to list unpushed commits
|
|
31
|
-
- If remote branch does not exist yet, run `git log --oneline -10` instead
|
|
32
|
-
- **If no unpushed commits**: Report "No commits to push" and exit
|
|
33
|
-
|
|
34
|
-
### Step 2: Pre-submission Checks (Quality Gate)
|
|
35
|
-
1. **Spec reflection**: Check if `docs/003_requirements/spec/` needs updates for the changes
|
|
36
|
-
2. **Quality gate**: Run the project's quality gate commands:
|
|
37
|
-
- If available: `pnpm quality-gate` (or equivalent from project config)
|
|
38
|
-
- Fallback: lint + typecheck + test for changed areas
|
|
39
|
-
3. **Secret check**: Scan staged/committed content for potential secrets:
|
|
40
|
-
- API keys, tokens, passwords in code or config
|
|
41
|
-
- `.env` files that should not be committed
|
|
42
|
-
- Private keys or certificates
|
|
43
|
-
4. **Breaking changes**: If breaking changes exist, verify migration/rollback docs are present
|
|
44
|
-
|
|
45
|
-
### Step 3: Report and Confirm
|
|
46
|
-
1. Present check results:
|
|
47
|
-
```
|
|
48
|
-
Pre-submission Check Results:
|
|
49
|
-
✅ Quality gate: Passed
|
|
50
|
-
✅ Spec reflection: No updates needed (or: Updated docs/003_requirements/spec/xxx.md)
|
|
51
|
-
✅ Secret check: No secrets detected
|
|
52
|
-
✅ Breaking changes: None (or: Migration documented)
|
|
53
|
-
|
|
54
|
-
Commits to push (N):
|
|
55
|
-
- abc1234 add user authentication endpoint
|
|
56
|
-
- def5678 update login form validation
|
|
57
|
-
```
|
|
58
|
-
{{#if auto_confirm}}
|
|
59
|
-
2. **Auto-confirm enabled**: Skip confirmation and proceed directly to Step 4
|
|
60
|
-
{{else}}
|
|
61
|
-
2. Wait for user confirmation
|
|
62
|
-
- If issues are found, fix them first and re-run checks
|
|
63
|
-
{{/if}}
|
|
64
|
-
|
|
65
|
-
### Step 4: Execute Push
|
|
66
|
-
1. Determine push command:
|
|
67
|
-
- If remote tracking branch exists: `git push`
|
|
68
|
-
- If no remote tracking branch: `git push -u origin HEAD`
|
|
69
|
-
2. Execute the push command
|
|
70
|
-
3. Verify push result:
|
|
71
|
-
- Run `git status` to confirm "Your branch is up to date with 'origin/...'"
|
|
72
|
-
- Run `git log origin/<branch>..HEAD --oneline` to confirm no unpushed commits remain
|
|
73
|
-
|
|
74
|
-
### Step 5: Handle Failures
|
|
75
|
-
- **Push rejected (non-fast-forward)**: Report the error and suggest `git pull --rebase` or `godd_sync`
|
|
76
|
-
- **Authentication failure**: Report and suggest checking credentials
|
|
77
|
-
- **Network error**: Report and suggest retry
|
|
78
|
-
|
|
79
|
-
## Output
|
|
80
|
-
- **Check results**: Each check item with pass/fail status
|
|
81
|
-
- **Commits pushed**: List of commit hashes and messages
|
|
82
|
-
- **Push result**: Success (remote URL + branch) or failure reason
|
|
83
|
-
- **Post-push state**: `git status` summary
|
|
@@ -1,24 +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
|
|
14
|
-
Organize everything that needs to be done before push/submission — ensuring nothing is missed (**Agent executes by default**).
|
|
15
|
-
|
|
16
|
-
## Output (Checklist)
|
|
17
|
-
- Local verification (required commands/results)
|
|
18
|
-
- Spec (`docs/003_requirements/spec`) reflection status
|
|
19
|
-
- Template (impact analysis/test plan/PR body) creation status
|
|
20
|
-
- Documentation of breaking changes/migration/rollback
|
|
21
|
-
- Secret information leakage check (logs/config/screenshots/etc.)
|
|
22
|
-
|
|
23
|
-
## Notes
|
|
24
|
-
- UI implementation requires `-frontend` / `-backend` branch separation
|