@ripla/godd-mcp 0.1.2-beta-20260312091403
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 +412 -0
- package/dist/godd.cjs +465 -0
- package/dist/godd.js +34845 -0
- package/dist/index.js +224 -0
- package/notes-api/.env.example +29 -0
- package/notes-api/README.md +65 -0
- package/notes-api/alembic/README +1 -0
- package/notes-api/alembic/env.py +62 -0
- package/notes-api/alembic/script.py.mako +28 -0
- package/notes-api/alembic/versions/001_initial_notes_tables.py +71 -0
- package/notes-api/alembic.ini +149 -0
- package/notes-api/app/__init__.py +1 -0
- package/notes-api/app/config.py +90 -0
- package/notes-api/app/database.py +31 -0
- package/notes-api/app/main.py +55 -0
- package/notes-api/app/models/__init__.py +17 -0
- package/notes-api/app/models/audit.py +38 -0
- package/notes-api/app/models/base.py +38 -0
- package/notes-api/app/models/session.py +32 -0
- package/notes-api/app/models/setting.py +16 -0
- package/notes-api/app/models/user.py +38 -0
- package/notes-api/app/routers/__init__.py +1 -0
- package/notes-api/app/routers/auth.py +205 -0
- package/notes-api/app/routers/files.py +76 -0
- package/notes-api/app/routers/pr.py +92 -0
- package/notes-api/app/routers/settings.py +44 -0
- package/notes-api/app/routers/tree.py +22 -0
- package/notes-api/app/routers/users.py +145 -0
- package/notes-api/app/schemas/__init__.py +1 -0
- package/notes-api/app/schemas/auth.py +45 -0
- package/notes-api/app/schemas/user.py +41 -0
- package/notes-api/app/security.py +94 -0
- package/notes-api/app/services/__init__.py +1 -0
- package/notes-api/app/services/audit.py +25 -0
- package/notes-api/app/services/business_date.py +38 -0
- package/notes-api/app/services/github.py +140 -0
- package/notes-api/app/services/github_pr.py +120 -0
- package/notes-api/app/services/pr_chain.py +225 -0
- package/notes-api/app/startup.py +66 -0
- package/notes-api/docker/Dockerfile +14 -0
- package/notes-api/docker/Dockerfile.test +14 -0
- package/notes-api/pyproject.toml +53 -0
- package/notes-api/tests/conftest.py +21 -0
- package/notes-api/tests/test_business_date.py +32 -0
- package/notes-api/tests/test_health.py +11 -0
- package/notes-api/uv.lock +1012 -0
- package/notes-app/README.md +30 -0
- package/notes-app/docker/Dockerfile.prod +12 -0
- package/notes-app/docker/Dockerfile.test +12 -0
- package/notes-app/eslint.config.js +23 -0
- package/notes-app/index.html +12 -0
- package/notes-app/nginx.conf +23 -0
- package/notes-app/package.json +37 -0
- package/notes-app/pnpm-lock.yaml +3124 -0
- package/notes-app/src/App.tsx +13 -0
- package/notes-app/src/main.tsx +13 -0
- package/notes-app/src/pages/LoginPage.test.tsx +15 -0
- package/notes-app/src/pages/LoginPage.tsx +10 -0
- package/notes-app/src/pages/MainPage.tsx +14 -0
- package/notes-app/src/styles/globals.css +1 -0
- package/notes-app/src/vite-env.d.ts +1 -0
- package/notes-app/tsconfig.json +24 -0
- package/notes-app/tsconfig.node.json +10 -0
- package/notes-app/vite.config.js +21 -0
- package/notes-app/vite.config.ts +22 -0
- package/notes-app/vitest.config.ts +16 -0
- package/package.json +58 -0
- package/stacks/django-vue.yaml +33 -0
- package/stacks/fastapi-react.yaml +160 -0
- package/stacks/flutter-firebase.yaml +58 -0
- package/stacks/nextjs-prisma.yaml +33 -0
- package/stacks/schema.json +144 -0
- package/templates/agents/architect.hbs +183 -0
- package/templates/agents/auto-documenter.hbs +36 -0
- package/templates/agents/backend-developer.hbs +175 -0
- package/templates/agents/code-reviewer.hbs +29 -0
- package/templates/agents/database-developer.hbs +52 -0
- package/templates/agents/debug-specialist.hbs +39 -0
- package/templates/agents/environment-setup.hbs +41 -0
- package/templates/agents/frontend-developer.hbs +45 -0
- package/templates/agents/integration-qa.hbs +26 -0
- package/templates/agents/performance-qa.hbs +24 -0
- package/templates/agents/pr-writer.hbs +53 -0
- package/templates/agents/quality-lead.hbs +26 -0
- package/templates/agents/requirements-analyst.hbs +26 -0
- package/templates/agents/security-analyst.hbs +21 -0
- package/templates/agents/security-reviewer.hbs +20 -0
- package/templates/agents/ssot-updater.hbs +45 -0
- package/templates/agents/technical-writer.hbs +28 -0
- package/templates/agents/unit-test-engineer.hbs +19 -0
- package/templates/agents/user-clone.hbs +43 -0
- package/templates/github-actions/aws/deploy-notes.yml.hbs +118 -0
- package/templates/github-actions/azure/deploy-notes.yml.hbs +78 -0
- package/templates/github-actions/gcp/deploy-notes.yml.hbs +76 -0
- package/templates/github-actions/vercel-railway/deploy-notes.yml.hbs +49 -0
- package/templates/mindsets/agent-stdio.hbs +51 -0
- package/templates/mindsets/dart.hbs +39 -0
- package/templates/mindsets/ddd-clean-architecture.hbs +52 -0
- package/templates/mindsets/electron.hbs +41 -0
- package/templates/mindsets/fastapi.hbs +40 -0
- package/templates/mindsets/flutter.hbs +56 -0
- package/templates/mindsets/kotlin.hbs +46 -0
- package/templates/mindsets/postgresql.hbs +39 -0
- package/templates/mindsets/python.hbs +39 -0
- package/templates/mindsets/react.hbs +51 -0
- package/templates/mindsets/swift.hbs +46 -0
- package/templates/mindsets/terraform.hbs +53 -0
- package/templates/mindsets/typescript.hbs +34 -0
- package/templates/mindsets/vite.hbs +37 -0
- package/templates/notes-compose.yml +79 -0
- package/templates/partials/cogito-geo.hbs +84 -0
- package/templates/partials/cogito-godd.hbs +22 -0
- package/templates/partials/cogito-grammar.hbs +105 -0
- package/templates/partials/cogito-particle.hbs +76 -0
- package/templates/partials/cogito-root-ai.hbs +79 -0
- package/templates/partials/cogito-root-arch.hbs +75 -0
- package/templates/partials/cogito-root-core.hbs +75 -0
- package/templates/partials/cogito-root-daily.hbs +58 -0
- package/templates/partials/cogito-root-dev.hbs +71 -0
- package/templates/partials/cogito-root-devops.hbs +71 -0
- package/templates/partials/cogito-root-framework.hbs +80 -0
- package/templates/partials/cogito-root-lang.hbs +74 -0
- package/templates/partials/godd-core.hbs +50 -0
- package/templates/partials/project-context.hbs +52 -0
- package/templates/partials/ssot-header.hbs +40 -0
- package/templates/partials/ssot-rules.hbs +30 -0
- package/templates/prompts/adr.hbs +39 -0
- package/templates/prompts/agent-dev-workflow.hbs +34 -0
- package/templates/prompts/analyze-report.hbs +36 -0
- package/templates/prompts/auto-documentation.hbs +37 -0
- package/templates/prompts/check.hbs +52 -0
- package/templates/prompts/commit.hbs +96 -0
- package/templates/prompts/dev.hbs +127 -0
- package/templates/prompts/docs-init.hbs +95 -0
- package/templates/prompts/docs-update.hbs +51 -0
- package/templates/prompts/git-workflow.hbs +125 -0
- package/templates/prompts/impact-analysis.hbs +43 -0
- package/templates/prompts/install.hbs +40 -0
- package/templates/prompts/new-branch.hbs +61 -0
- package/templates/prompts/notes-deploy.hbs +72 -0
- package/templates/prompts/pr-analyze.hbs +44 -0
- package/templates/prompts/pr-create.hbs +125 -0
- package/templates/prompts/push-execute.hbs +83 -0
- package/templates/prompts/push.hbs +24 -0
- package/templates/prompts/release-notes.hbs +38 -0
- package/templates/prompts/requirements-to-business-flow.hbs +29 -0
- package/templates/prompts/requirements-to-tickets.hbs +26 -0
- package/templates/prompts/review.hbs +126 -0
- package/templates/prompts/setup.hbs +247 -0
- package/templates/prompts/spec.hbs +35 -0
- package/templates/prompts/specification-to-tickets.hbs +24 -0
- package/templates/prompts/submit.hbs +143 -0
- package/templates/prompts/sync.hbs +63 -0
- package/templates/prompts/test-plan.hbs +56 -0
- package/templates/terraform/aws/alb.tf.hbs +58 -0
- package/templates/terraform/aws/backend.tf.hbs +10 -0
- package/templates/terraform/aws/cloudfront.tf.hbs +96 -0
- package/templates/terraform/aws/ecr.tf.hbs +30 -0
- package/templates/terraform/aws/ecs.tf.hbs +136 -0
- package/templates/terraform/aws/iam.tf.hbs +88 -0
- package/templates/terraform/aws/local.tf.hbs +34 -0
- package/templates/terraform/aws/output.tf.hbs +49 -0
- package/templates/terraform/aws/provider.tf.hbs +26 -0
- package/templates/terraform/aws/rds.tf.hbs +38 -0
- package/templates/terraform/aws/s3.tf.hbs +34 -0
- package/templates/terraform/aws/secrets.tf.hbs +38 -0
- package/templates/terraform/aws/security_groups.tf.hbs +72 -0
- package/templates/terraform/aws/vpc.tf.hbs +63 -0
- package/templates/terraform/azure/backend.tf.hbs +8 -0
- package/templates/terraform/azure/iam.tf.hbs +36 -0
- package/templates/terraform/azure/main.tf.hbs +199 -0
- package/templates/terraform/azure/output.tf.hbs +19 -0
- package/templates/terraform/azure/provider.tf.hbs +19 -0
- package/templates/terraform/gcp/backend.tf.hbs +6 -0
- package/templates/terraform/gcp/iam.tf.hbs +47 -0
- package/templates/terraform/gcp/main.tf.hbs +171 -0
- package/templates/terraform/gcp/output.tf.hbs +15 -0
- package/templates/terraform/gcp/provider.tf.hbs +19 -0
- package/templates/terraform/vercel-railway/main.tf.hbs +64 -0
- package/templates/terraform/vercel-railway/output.tf.hbs +11 -0
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
{{> ssot-header }}
|
|
2
|
+
{{> godd-core }}
|
|
3
|
+
{{> project-context }}
|
|
4
|
+
|
|
5
|
+
## Purpose
|
|
6
|
+
|
|
7
|
+
ripla Notes(notes-app / notes-api)のデプロイ手順を案内する。
|
|
8
|
+
デプロイ先に応じた具体的なセットアップ手順を提供する。
|
|
9
|
+
|
|
10
|
+
## アーキテクチャ
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
notes-app (React + Vite) ──proxy──▶ notes-api (FastAPI) ──▶ GitHub API
|
|
14
|
+
:5175 :8000
|
|
15
|
+
```
|
|
16
|
+
|
|
17
|
+
## 必要な環境変数(notes-api)
|
|
18
|
+
|
|
19
|
+
```bash
|
|
20
|
+
GITHUB_TOKEN=ghp_xxx # GitHub API トークン(必須)
|
|
21
|
+
GITHUB_OWNER=owner # リポジトリオーナー
|
|
22
|
+
GITHUB_REPO=repo # リポジトリ名
|
|
23
|
+
GITHUB_BRANCH=main # ベースブランチ
|
|
24
|
+
DOCS_PATH=docs # docs フォルダパス
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## デプロイ方法
|
|
28
|
+
|
|
29
|
+
### 1. Docker Compose(推奨)
|
|
30
|
+
|
|
31
|
+
Docker Compose ファイルを生成し、`docker compose up -d` で起動する手順を案内する。
|
|
32
|
+
|
|
33
|
+
### 2. クラウドデプロイ
|
|
34
|
+
|
|
35
|
+
- notes-app: Vercel / Cloudflare Pages にデプロイ(Vite ビルド)
|
|
36
|
+
- notes-api: Railway / Render にデプロイ(FastAPI + uvicorn)
|
|
37
|
+
- 環境変数の設定手順を含める
|
|
38
|
+
|
|
39
|
+
### 3. 手動セットアップ
|
|
40
|
+
|
|
41
|
+
```bash
|
|
42
|
+
# notes-api(FastAPI)
|
|
43
|
+
cd notes-api
|
|
44
|
+
uv sync
|
|
45
|
+
uv run uvicorn main:app --reload --port 8000
|
|
46
|
+
|
|
47
|
+
# notes-app(React + Vite)
|
|
48
|
+
cd notes-app
|
|
49
|
+
pnpm install
|
|
50
|
+
pnpm dev # or pnpm build && pnpm preview
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## テスト実行(Docker 完全環境)
|
|
54
|
+
|
|
55
|
+
```bash
|
|
56
|
+
docker compose run --rm --profile test notes-api-test
|
|
57
|
+
docker compose run --rm --profile test notes-app-test
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## ルール
|
|
61
|
+
|
|
62
|
+
1. デプロイ先に応じた具体的な手順を提示する
|
|
63
|
+
2. 環境変数の設定を漏れなく案内する
|
|
64
|
+
3. HTTPS / CORS の設定を含める
|
|
65
|
+
4. GitHub Token のスコープ要件を明記する(`repo` or `contents:read`)
|
|
66
|
+
5. ヘルスチェック確認手順を含める
|
|
67
|
+
|
|
68
|
+
## 出力
|
|
69
|
+
|
|
70
|
+
- デプロイ手順(ステップバイステップ)
|
|
71
|
+
- 必要な設定ファイル(Docker Compose / クラウド設定等)
|
|
72
|
+
- 確認手順
|
|
@@ -0,0 +1,44 @@
|
|
|
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)
|
|
@@ -0,0 +1,125 @@
|
|
|
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 (`documents/templates/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: `documents/templates/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.
|
|
@@ -0,0 +1,83 @@
|
|
|
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 `documents/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 documents/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
|
|
@@ -0,0 +1,24 @@
|
|
|
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 (`documents/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
|
|
@@ -0,0 +1,38 @@
|
|
|
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 release notes that clearly communicate changes, migrations, and known issues.
|
|
17
|
+
The audience is end users and operators — write for clarity and actionability.
|
|
18
|
+
|
|
19
|
+
## Input
|
|
20
|
+
- Changes (additions / modifications / fixes)
|
|
21
|
+
- Compatibility / migration requirements
|
|
22
|
+
- Known issues
|
|
23
|
+
|
|
24
|
+
## Output
|
|
25
|
+
Markdown release notes with the following sections:
|
|
26
|
+
- **Version**: Version number and release date
|
|
27
|
+
- **Highlights**: 1-3 sentence summary of the most important changes
|
|
28
|
+
- **Added**: New features and capabilities
|
|
29
|
+
- **Changed**: Modifications to existing behavior (include migration steps if needed)
|
|
30
|
+
- **Fixed**: Bug fixes with brief description of the issue and resolution
|
|
31
|
+
- **Deprecated**: Features scheduled for removal (include timeline and alternatives)
|
|
32
|
+
- **Removed**: Features that were removed in this release
|
|
33
|
+
- **Security**: Security-related changes (CVEs, vulnerability fixes)
|
|
34
|
+
- **Breaking Changes**: Changes that require user action (migration guide must be included)
|
|
35
|
+
- **Known Issues**: Outstanding problems with workarounds if available
|
|
36
|
+
- **Migration Guide**: Step-by-step instructions for upgrading (if applicable)
|
|
37
|
+
|
|
38
|
+
Fill every applicable section. Mark empty sections as "None in this release."
|
|
@@ -0,0 +1,29 @@
|
|
|
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
|
+
Transform requirements (natural language) into business flows (As-Is / To-Be) and use cases.
|
|
15
|
+
|
|
16
|
+
## Output
|
|
17
|
+
|
|
18
|
+
### As-Is (Current Flow)
|
|
19
|
+
-
|
|
20
|
+
|
|
21
|
+
### To-Be (Target Flow)
|
|
22
|
+
-
|
|
23
|
+
|
|
24
|
+
### Use Case List
|
|
25
|
+
- Purpose/Trigger/Main success scenario/Alternative scenario/Exceptions
|
|
26
|
+
|
|
27
|
+
### Spec Mapping
|
|
28
|
+
- List the required Spec templates (UI/API/DB/Feature/Usecase/Error Codes) and recommend which to create
|
|
29
|
+
- Specs are placed under `documents/spec/`
|
|
@@ -0,0 +1,26 @@
|
|
|
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
|
+
Break down requirements into implementation tasks (tickets).
|
|
15
|
+
|
|
16
|
+
## Output
|
|
17
|
+
- Ticket list (1 line = 1 ticket)
|
|
18
|
+
- Title
|
|
19
|
+
- Purpose (Done criteria)
|
|
20
|
+
- Impact scope ({{#if frontend}}Front/{{/if}}{{#if backend}}Back/{{/if}}Agent/Infra)
|
|
21
|
+
- Dependencies (Specs/tasks required first)
|
|
22
|
+
- Verification method (minimal)
|
|
23
|
+
|
|
24
|
+
## Rules
|
|
25
|
+
- If Specs are not yet created/finalized, add a "Create Spec" ticket as the highest priority
|
|
26
|
+
- If there are breaking changes, always include a "Migration/Rollback" ticket
|
|
@@ -0,0 +1,126 @@
|
|
|
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
|
+
Perform a **CTO-level code review** that goes beyond syntax and style. Evaluate changes from strategic, architectural, and business-impact perspectives while maintaining rigorous technical standards.
|
|
17
|
+
|
|
18
|
+
## Review Perspective (CTO Level)
|
|
19
|
+
|
|
20
|
+
You review as a CTO who:
|
|
21
|
+
- Thinks about **long-term maintainability** and **team scalability**
|
|
22
|
+
- Evaluates **architectural alignment** with the project's overall direction
|
|
23
|
+
- Considers **business impact** and **operational risk**
|
|
24
|
+
- Prioritizes **security** and **data integrity** as non-negotiable
|
|
25
|
+
- Balances **pragmatism** with **engineering excellence**
|
|
26
|
+
|
|
27
|
+
## Review Criteria
|
|
28
|
+
|
|
29
|
+
### 1. Architecture & Design
|
|
30
|
+
- Separation of concerns, dependency direction{{#if backend}} ({{backend.dependency_direction}}){{/if}}, SOLID principles
|
|
31
|
+
- **Architectural consistency**: Does this change align with existing patterns or introduce divergence?
|
|
32
|
+
- **Scalability**: Will this approach hold up as the codebase and team grow?
|
|
33
|
+
- **Technical debt**: Does this add, reduce, or leave tech debt neutral?
|
|
34
|
+
- **Abstraction quality**: Right level of abstraction? Over-engineering or under-engineering?
|
|
35
|
+
|
|
36
|
+
### 2. Type Safety & Code Quality
|
|
37
|
+
- No `any`, treat external input as `unknown`, proper validation at boundaries
|
|
38
|
+
- **Readability**: Can a new team member understand this without extensive context?
|
|
39
|
+
- **Complexity**: Cyclomatic complexity, nesting depth, function length
|
|
40
|
+
- **Naming**: Domain-accurate naming that communicates intent
|
|
41
|
+
|
|
42
|
+
### 3. Testing & Reliability
|
|
43
|
+
- Sufficient test coverage for changes, boundary values & error cases covered
|
|
44
|
+
- New features: Are acceptance tests present (ATDD)?
|
|
45
|
+
- Bug fixes: Is there a reproduction test?
|
|
46
|
+
- **Determinism**: Are tests independent and repeatable?
|
|
47
|
+
- **Test architecture**: AAA pattern, no test-to-test dependencies
|
|
48
|
+
|
|
49
|
+
### 4. Error Handling & Resilience
|
|
50
|
+
- Failure paths handled first? Early returns for clean flow?
|
|
51
|
+
- **Graceful degradation**: How does the system behave under partial failure?
|
|
52
|
+
- **Error messages**: Actionable, specific, no secret leakage
|
|
53
|
+
|
|
54
|
+
### 5. Security
|
|
55
|
+
- Secret leaks, SQL injection, XSS, improper access control
|
|
56
|
+
- **Data exposure**: PII/sensitive data in logs, responses, or error messages?
|
|
57
|
+
- **Authentication/Authorization**: Proper boundary enforcement?
|
|
58
|
+
- **Dependency risk**: Known vulnerabilities in added dependencies?
|
|
59
|
+
|
|
60
|
+
### 6. Performance & Operations
|
|
61
|
+
- **N+1 queries**, unnecessary full-table scans, missing indexes
|
|
62
|
+
- **Resource management**: Memory leaks, connection pool exhaustion, file handle leaks
|
|
63
|
+
- **Observability**: Adequate logging, metrics, health checks
|
|
64
|
+
- **Migration/Rollback**: Is the change reversible? Data migration plan?
|
|
65
|
+
|
|
66
|
+
### 7. Business Impact
|
|
67
|
+
- **User experience**: Does this change affect UX positively/negatively?
|
|
68
|
+
- **Backward compatibility**: API contract changes? Client impact?
|
|
69
|
+
- **Feature completeness**: Edge cases handled? Accessibility considered?
|
|
70
|
+
|
|
71
|
+
### 8. Commit & PR Hygiene
|
|
72
|
+
- 1 commit = 1 responsibility? No Front/Back mixed commits?
|
|
73
|
+
- **PR scope**: Is the PR focused or doing too many things?
|
|
74
|
+
|
|
75
|
+
## Output Format
|
|
76
|
+
|
|
77
|
+
### Severity Classification
|
|
78
|
+
|
|
79
|
+
Use these severity levels for each finding:
|
|
80
|
+
|
|
81
|
+
- **CRITICAL**: Must fix before merge. Security vulnerability, data loss risk, or production-breaking bug.
|
|
82
|
+
- **MAJOR**: Should fix before merge. Architectural issue, significant performance concern, or missing test coverage.
|
|
83
|
+
- **MINOR**: Nice to fix. Code quality improvement, naming suggestion, or style consistency.
|
|
84
|
+
- **SUGGESTION**: Optional improvement. Alternative approach, future optimization, or pattern recommendation.
|
|
85
|
+
|
|
86
|
+
### Output Structure
|
|
87
|
+
|
|
88
|
+
```
|
|
89
|
+
## Summary
|
|
90
|
+
Overall assessment (2-3 lines). Risk level: LOW / MEDIUM / HIGH / CRITICAL.
|
|
91
|
+
|
|
92
|
+
## Findings
|
|
93
|
+
|
|
94
|
+
### CRITICAL
|
|
95
|
+
- [Finding]: Description + suggested fix + rationale
|
|
96
|
+
|
|
97
|
+
### MAJOR
|
|
98
|
+
- [Finding]: Description + suggested fix + rationale
|
|
99
|
+
|
|
100
|
+
### MINOR
|
|
101
|
+
- [Finding]: Description + suggested fix
|
|
102
|
+
|
|
103
|
+
### SUGGESTION
|
|
104
|
+
- [Finding]: Description + alternative approach
|
|
105
|
+
|
|
106
|
+
## Positive Points
|
|
107
|
+
- What was done well (encourage good practices)
|
|
108
|
+
|
|
109
|
+
## Architecture Notes
|
|
110
|
+
- Impact on overall system architecture
|
|
111
|
+
- Technical debt assessment (+/- /neutral)
|
|
112
|
+
- Scalability considerations
|
|
113
|
+
|
|
114
|
+
## Questions for Author
|
|
115
|
+
- Points needing clarification before approval
|
|
116
|
+
```
|
|
117
|
+
|
|
118
|
+
{{#if frontend.mindset}}
|
|
119
|
+
## Frontend Review Criteria
|
|
120
|
+
{{{frontend.mindset}}}
|
|
121
|
+
{{/if}}
|
|
122
|
+
|
|
123
|
+
{{#if backend.mindset}}
|
|
124
|
+
## Backend Review Criteria
|
|
125
|
+
{{{backend.mindset}}}
|
|
126
|
+
{{/if}}
|