@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,96 @@
|
|
|
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`: `documents/**`
|
|
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
|
|
@@ -0,0 +1,127 @@
|
|
|
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 run --rm --profile test <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}}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
{{> ssot-header }}
|
|
2
|
+
{{> godd-core }}
|
|
3
|
+
{{> ssot-rules }}
|
|
4
|
+
{{> project-context }}
|
|
5
|
+
|
|
6
|
+
## Purpose
|
|
7
|
+
|
|
8
|
+
プロジェクトに `docs/` フォルダ構造をテンプレートから生成する。
|
|
9
|
+
ripla Notes(テキストノート / テーブルノート / drawio)で閲覧・編集可能なドキュメント初期構造を作成する。
|
|
10
|
+
|
|
11
|
+
## docs/ フォルダ構成(テンプレート)
|
|
12
|
+
|
|
13
|
+
以下の構造を生成すること:
|
|
14
|
+
|
|
15
|
+
```
|
|
16
|
+
docs/
|
|
17
|
+
├── README.md # docs 全体の入口・構成説明
|
|
18
|
+
├── 001_project/
|
|
19
|
+
│ ├── README.md # プロジェクト概要(背景・目的・MVP・用語)
|
|
20
|
+
│ ├── features.csv # 機能要件一覧(テーブルノート)
|
|
21
|
+
│ ├── screens.csv # 画面要件一覧(テーブルノート)
|
|
22
|
+
│ └── template_README.md
|
|
23
|
+
├── 002_business_flow/
|
|
24
|
+
│ ├── README.md # ビジネスフロー概要(Mermaid 含む)
|
|
25
|
+
│ └── flow-overview.drawio
|
|
26
|
+
├── 003_requirements/
|
|
27
|
+
│ ├── README.md # 要件概要
|
|
28
|
+
│ ├── requirements-list.csv # 要件一覧(テーブルノート)
|
|
29
|
+
│ └── template_requirements.md
|
|
30
|
+
├── 004_non_functional_requirements/
|
|
31
|
+
│ ├── README.md
|
|
32
|
+
│ └── nfr-list.csv
|
|
33
|
+
├── 005_pages/
|
|
34
|
+
│ ├── README.md
|
|
35
|
+
│ ├── page-definitions.csv
|
|
36
|
+
│ └── template_page.md
|
|
37
|
+
├── 006_designs/
|
|
38
|
+
│ ├── README.md
|
|
39
|
+
│ ├── api/api.md
|
|
40
|
+
│ ├── db/db.md
|
|
41
|
+
│ ├── db/tables.csv
|
|
42
|
+
│ ├── infra/infra.md
|
|
43
|
+
│ └── features/README.md
|
|
44
|
+
└── 007_development/
|
|
45
|
+
├── README.md
|
|
46
|
+
├── structure.md
|
|
47
|
+
├── workflow.md
|
|
48
|
+
├── stacks.md
|
|
49
|
+
└── git.md
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## ルール
|
|
53
|
+
|
|
54
|
+
1. プロジェクトスキャン結果と入力パラメータ(プロジェクト名、ロール、画面ID)を使って各ファイルの内容を生成
|
|
55
|
+
2. CSV ファイルはヘッダー行 + サンプル行を含める
|
|
56
|
+
3. README.md は Mermaid ダイアグラムを含める(適切な場合)
|
|
57
|
+
4. 既に `docs/` が存在する場合は既存構造を尊重し、不足分のみ追加
|
|
58
|
+
5. 各ファイルの先頭にファイルの目的を1行コメントで記載
|
|
59
|
+
|
|
60
|
+
## CSV ヘッダー定義
|
|
61
|
+
|
|
62
|
+
### features.csv
|
|
63
|
+
```
|
|
64
|
+
機能ID,機能名,概要,phase,優先度,ステータス
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### screens.csv
|
|
68
|
+
```
|
|
69
|
+
画面ID,画面名,概要,提供フェーズ,関連機能ID,ステータス
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
### requirements-list.csv
|
|
73
|
+
```
|
|
74
|
+
要件ID,要件名,概要,優先度,ステータス
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
### nfr-list.csv
|
|
78
|
+
```
|
|
79
|
+
NFR-ID,カテゴリ,要件,基準,優先度
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### page-definitions.csv
|
|
83
|
+
```
|
|
84
|
+
画面ID,画面名,URL,認証要否,概要
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### tables.csv
|
|
88
|
+
```
|
|
89
|
+
テーブル名,カラム名,型,制約,説明
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
## 出力
|
|
93
|
+
|
|
94
|
+
- 生成した全ファイルのパスと内容
|
|
95
|
+
- 生成理由の簡潔な説明
|
|
@@ -0,0 +1,51 @@
|
|
|
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_non_functional_requirements/ # 非機能要件
|
|
19
|
+
├── 005_pages/ # 画面設計
|
|
20
|
+
├── 006_designs/ # 詳細設計(API/DB/機能別)
|
|
21
|
+
└── 007_development/ # 設計思想・アーキテクチャ & 開発ガイド
|
|
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 変更 | 006 (api/), 003 (requirements) |
|
|
39
|
+
| DB スキーマ変更 | 006 (db/) |
|
|
40
|
+
| 画面追加/変更 | 001 (screens.csv), 005 (pages/) |
|
|
41
|
+
| インフラ変更 | 007 (infra.md) |
|
|
42
|
+
| アーキテクチャ変更 | 007 (architecture.md) |
|
|
43
|
+
| 開発フロー変更 | 007 (workflow.md, git.md) |
|
|
44
|
+
| ビジネスフロー変更 | 002 (business_flow/) |
|
|
45
|
+
|
|
46
|
+
## 出力
|
|
47
|
+
|
|
48
|
+
1. 影響を受けるドキュメント一覧(ファイルパス)
|
|
49
|
+
2. 各ドキュメントの追記/修正ポイント(箇条書き)
|
|
50
|
+
3. 具体的な更新内容(差分形式)
|
|
51
|
+
4. 参照切れチェック結果
|
|
@@ -0,0 +1,125 @@
|
|
|
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
|
+
```
|
|
@@ -0,0 +1,43 @@
|
|
|
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.
|
|
@@ -0,0 +1,40 @@
|
|
|
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`)
|
|
@@ -0,0 +1,61 @@
|
|
|
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
|