@ripla/godd-mcp 1.0.1 → 1.0.2-canary.2
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 +2 -2
- package/dist/godd.cjs +116 -111
- package/dist/godd.js +114 -17
- package/dist/index.js +1 -1
- package/notes-api/app/config.py +24 -3
- package/notes-api/app/database.py +10 -4
- package/notes-api/app/routers/comments.py +1 -0
- package/notes-api/app/routers/files.py +0 -1
- package/notes-api/app/routers/settings.py +4 -2
- package/notes-api/app/routers/tree.py +10 -2
- package/notes-api/app/services/github_issues.py +1 -1
- package/notes-api/tests/test_config_ssl.py +28 -0
- package/notes-api/tests/test_issues.py +15 -4
- package/notes-api/tests/test_pr.py +0 -1
- package/notes-api/tests/test_pr_chain.py +2 -2
- package/notes-api/tests/test_tree.py +15 -3
- package/notes-app/src/components/IssueList.tsx +36 -16
- package/notes-app/vitest.config.ts +1 -0
- package/package.json +1 -1
- package/templates/agents/architect.hbs +4 -4
- package/templates/agents/auto-documenter.hbs +4 -4
- package/templates/agents/backend-developer.hbs +3 -3
- package/templates/agents/code-reviewer.hbs +2 -2
- package/templates/agents/database-developer.hbs +4 -4
- package/templates/agents/debug-specialist.hbs +2 -2
- package/templates/agents/environment-setup.hbs +1 -1
- package/templates/agents/frontend-developer.hbs +5 -5
- package/templates/agents/integration-qa.hbs +1 -1
- package/templates/agents/pr-writer.hbs +1 -1
- package/templates/agents/quality-lead.hbs +3 -3
- package/templates/agents/requirements-analyst.hbs +2 -2
- package/templates/agents/security-analyst.hbs +1 -1
- package/templates/agents/ssot-updater.hbs +3 -3
- package/templates/agents/technical-writer.hbs +3 -3
- package/templates/agents/unit-test-engineer.hbs +1 -1
- package/templates/prompts/agent-dev-workflow.hbs +1 -1
- package/templates/prompts/docs-init.hbs +41 -59
- package/templates/prompts/docs-update.hbs +10 -10
- package/templates/prompts/notes-deploy.hbs +2 -1
- package/templates/prompts/pr-create.hbs +2 -2
- package/templates/prompts/push-execute.hbs +2 -2
- package/templates/prompts/push.hbs +1 -1
- package/templates/prompts/requirements-to-business-flow.hbs +1 -1
- package/templates/prompts/specification-to-tickets.hbs +1 -1
- package/templates/prompts/submit.hbs +2 -2
- package/templates/prompts/sync.hbs +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { useState, useEffect,
|
|
1
|
+
import { useState, useEffect, useRef } from "react";
|
|
2
2
|
import {
|
|
3
3
|
listIssuesApi,
|
|
4
4
|
getErrorMessage,
|
|
@@ -18,24 +18,44 @@ export default function IssueList({ onSelect, selectedIssue }: IssueListProps) {
|
|
|
18
18
|
const [loading, setLoading] = useState(true);
|
|
19
19
|
const [error, setError] = useState<string | null>(null);
|
|
20
20
|
const [stateFilter, setStateFilter] = useState<"open" | "closed">("open");
|
|
21
|
+
const [reloadKey, setReloadKey] = useState(0);
|
|
22
|
+
const requestSeq = useRef(0);
|
|
21
23
|
|
|
22
|
-
const
|
|
24
|
+
const requestReload = () => {
|
|
25
|
+
requestSeq.current += 1;
|
|
23
26
|
setLoading(true);
|
|
24
27
|
setError(null);
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
28
|
+
setReloadKey((key) => key + 1);
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
const changeStateFilter = (nextState: "open" | "closed") => {
|
|
32
|
+
if (nextState === stateFilter) return;
|
|
33
|
+
requestSeq.current += 1;
|
|
34
|
+
setLoading(true);
|
|
35
|
+
setError(null);
|
|
36
|
+
setStateFilter(nextState);
|
|
37
|
+
};
|
|
33
38
|
|
|
34
39
|
useEffect(() => {
|
|
35
40
|
const ac = new AbortController();
|
|
36
|
-
|
|
41
|
+
const requestId = requestSeq.current + 1;
|
|
42
|
+
requestSeq.current = requestId;
|
|
43
|
+
listIssuesApi({ state: stateFilter, per_page: 50, signal: ac.signal })
|
|
44
|
+
.then((data) => {
|
|
45
|
+
if (ac.signal.aborted || requestSeq.current !== requestId) return;
|
|
46
|
+
setIssues(data.issues);
|
|
47
|
+
})
|
|
48
|
+
.catch((e) => {
|
|
49
|
+
if (ac.signal.aborted || requestSeq.current !== requestId || isAbortError(e)) return;
|
|
50
|
+
setError(getErrorMessage(e));
|
|
51
|
+
})
|
|
52
|
+
.finally(() => {
|
|
53
|
+
if (!ac.signal.aborted && requestSeq.current === requestId) {
|
|
54
|
+
setLoading(false);
|
|
55
|
+
}
|
|
56
|
+
});
|
|
37
57
|
return () => ac.abort();
|
|
38
|
-
}, [
|
|
58
|
+
}, [stateFilter, reloadKey]);
|
|
39
59
|
|
|
40
60
|
return (
|
|
41
61
|
<div className="flex flex-col h-full">
|
|
@@ -44,7 +64,7 @@ export default function IssueList({ onSelect, selectedIssue }: IssueListProps) {
|
|
|
44
64
|
<div className="flex-1 flex bg-gray-900 rounded border border-gray-600 overflow-hidden text-xs">
|
|
45
65
|
<button
|
|
46
66
|
type="button"
|
|
47
|
-
onClick={() =>
|
|
67
|
+
onClick={() => changeStateFilter("open")}
|
|
48
68
|
className={`flex-1 px-2 py-1 transition-colors ${
|
|
49
69
|
stateFilter === "open"
|
|
50
70
|
? "bg-green-700/30 text-green-300"
|
|
@@ -56,7 +76,7 @@ export default function IssueList({ onSelect, selectedIssue }: IssueListProps) {
|
|
|
56
76
|
</button>
|
|
57
77
|
<button
|
|
58
78
|
type="button"
|
|
59
|
-
onClick={() =>
|
|
79
|
+
onClick={() => changeStateFilter("closed")}
|
|
60
80
|
className={`flex-1 px-2 py-1 transition-colors ${
|
|
61
81
|
stateFilter === "closed"
|
|
62
82
|
? "bg-purple-700/30 text-purple-300"
|
|
@@ -69,7 +89,7 @@ export default function IssueList({ onSelect, selectedIssue }: IssueListProps) {
|
|
|
69
89
|
</div>
|
|
70
90
|
<button
|
|
71
91
|
type="button"
|
|
72
|
-
onClick={
|
|
92
|
+
onClick={requestReload}
|
|
73
93
|
className="shrink-0 p-1 rounded text-gray-400 hover:text-gray-200 hover:bg-gray-700 transition-colors"
|
|
74
94
|
title="更新"
|
|
75
95
|
>
|
|
@@ -85,7 +105,7 @@ export default function IssueList({ onSelect, selectedIssue }: IssueListProps) {
|
|
|
85
105
|
</div>
|
|
86
106
|
)}
|
|
87
107
|
|
|
88
|
-
{error && <InlineError message={error} onRetry={
|
|
108
|
+
{error && <InlineError message={error} onRetry={requestReload} />}
|
|
89
109
|
|
|
90
110
|
{!loading && !error && issues.length === 0 && (
|
|
91
111
|
<p className="text-xs text-gray-500 text-center py-4">
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ripla/godd-mcp",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.2-canary.2",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "GoDD (Governance-orchestrated Driven Development) MCP Server - Encrypted prompt distribution via Model Context Protocol",
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -51,10 +51,10 @@ In particular, understand and strictly follow the principles, guidelines, and re
|
|
|
51
51
|
- .instruction/01_specialties/planning.md
|
|
52
52
|
- .instruction/01_specialties/design.md
|
|
53
53
|
- .instruction/01_specialties/consultation.md
|
|
54
|
-
- docs/
|
|
55
|
-
- docs/
|
|
56
|
-
- docs/
|
|
57
|
-
- docs/
|
|
54
|
+
- docs/003_requirements/spec/README.md
|
|
55
|
+
- docs/003_requirements/api.template.md
|
|
56
|
+
- docs/003_requirements/ui.template.md
|
|
57
|
+
- docs/003_requirements/db.template.md
|
|
58
58
|
|
|
59
59
|
## Expertise
|
|
60
60
|
|
|
@@ -14,10 +14,10 @@
|
|
|
14
14
|
|
|
15
15
|
# Role (SSOT)
|
|
16
16
|
|
|
17
|
-
- **Specifications (Spec)**: `docs/
|
|
18
|
-
- **Operational templates**: `docs/
|
|
19
|
-
- **Configuration descriptions**: `docs/
|
|
20
|
-
- **Tech stack**: `docs/
|
|
17
|
+
- **Specifications (Spec)**: `docs/003_requirements/spec/` (.md)
|
|
18
|
+
- **Operational templates**: `docs/006_development_workflow/` (.md)
|
|
19
|
+
- **Configuration descriptions**: `docs/007_guides/mcp.md` (descriptions for yaml/json)
|
|
20
|
+
- **Tech stack**: `docs/007_guides/tech-stack.md`
|
|
21
21
|
- **Rules/Entry**: `AGENTS.md` / `docs/README.md`
|
|
22
22
|
|
|
23
23
|
## When to Use (Auto-Activation)
|
|
@@ -51,9 +51,9 @@ Before starting work, read and understand the `AGENTS.md` at the project root an
|
|
|
51
51
|
- .instruction/02_project/architecture.md
|
|
52
52
|
- .instruction/02_project/domain.md
|
|
53
53
|
- .instruction/02_project/patterns.md
|
|
54
|
-
- docs/
|
|
55
|
-
- docs/
|
|
56
|
-
- docs/
|
|
54
|
+
- docs/003_requirements/spec/README.md
|
|
55
|
+
- docs/003_requirements/api.template.md
|
|
56
|
+
- docs/003_requirements/db.template.md
|
|
57
57
|
|
|
58
58
|
Reference implementation: `{{backend.root_dir}}/**`
|
|
59
59
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
## Review Criteria (SSOT)
|
|
16
16
|
|
|
17
|
-
- **Spec alignment**: Does implementation match `docs/
|
|
17
|
+
- **Spec alignment**: Does implementation match `docs/003_requirements/spec/`?
|
|
18
18
|
- **Boundaries**:
|
|
19
19
|
- Backend: {{backend.dependency_direction}}
|
|
20
20
|
- Front: UI and side effects separated (into hooks/services)
|
|
@@ -26,4 +26,4 @@
|
|
|
26
26
|
## Output Format
|
|
27
27
|
|
|
28
28
|
- Issues are presented with **severity (Blocker/Important/Nice)**, reason, and specific fix proposals as a set
|
|
29
|
-
- If additional Spec/templates are needed, include proposals to add to `docs/
|
|
29
|
+
- If additional Spec/templates are needed, include proposals to add to `docs/003_requirements/spec` or `docs/006_development_workflow`
|
|
@@ -34,9 +34,9 @@ Before starting work, read and understand the `AGENTS.md` at the project root an
|
|
|
34
34
|
- .instruction/02_project/architecture.md
|
|
35
35
|
- .instruction/02_project/domain.md
|
|
36
36
|
- .instruction/02_project/patterns.md
|
|
37
|
-
- docs/
|
|
38
|
-
- docs/
|
|
39
|
-
- docs/
|
|
37
|
+
- docs/003_requirements/spec/README.md
|
|
38
|
+
- docs/003_requirements/db.template.md
|
|
39
|
+
- docs/003_requirements/error-codes.template.md
|
|
40
40
|
|
|
41
41
|
## DB Change Policy
|
|
42
42
|
|
|
@@ -47,6 +47,6 @@ Before starting work, read and understand the `AGENTS.md` at the project root an
|
|
|
47
47
|
|
|
48
48
|
## Deliverables (Minimum)
|
|
49
49
|
|
|
50
|
-
- **DB Spec**: Satisfies `docs/
|
|
50
|
+
- **DB Spec**: Satisfies `docs/003_requirements/db.template.md` (DDL diffs, compatibility, migration/rollback, indexes, application steps)
|
|
51
51
|
- **Migration**: Alembic revision and application steps (both Docker and local)
|
|
52
52
|
- **Impact scope**: Impact on existing APIs/features (especially search, list, aggregation)
|
|
@@ -25,8 +25,8 @@ Don't "fix by guessing" — converge reliably in order: reproduce→hypothesize
|
|
|
25
25
|
|
|
26
26
|
- AGENTS.md
|
|
27
27
|
- .instruction/01_specialties/investigation-debug.md
|
|
28
|
-
- docs/
|
|
29
|
-
- docs/
|
|
28
|
+
- docs/006_development_workflow/impact-analysis.template.md
|
|
29
|
+
- docs/006_development_workflow/test-plan.template.md
|
|
30
30
|
|
|
31
31
|
## Investigation Report (Minimum Format)
|
|
32
32
|
|
|
@@ -30,7 +30,7 @@ Agent responsible for **environment setup, reproducibility, and onboarding** for
|
|
|
30
30
|
## What to Do
|
|
31
31
|
|
|
32
32
|
- Maintain the preflight script as the canonical entry point
|
|
33
|
-
- Update `docs/
|
|
33
|
+
- Update `docs/007_guides/` and `docs/007_guides/`, making procedures SSOT
|
|
34
34
|
- Ensure external tools can be launched according to configuration file declarations
|
|
35
35
|
|
|
36
36
|
## Output Format
|
|
@@ -30,11 +30,11 @@ Screens focus on rendering; side effects (fetching/saving/IPC) are delegated to
|
|
|
30
30
|
- .instruction/00_universal/quality.md
|
|
31
31
|
- .instruction/00_universal/communication.md
|
|
32
32
|
- .instruction/02_project/tech-stack.md
|
|
33
|
-
- docs/
|
|
34
|
-
- docs/
|
|
35
|
-
- docs/
|
|
36
|
-
- docs/
|
|
37
|
-
- docs/
|
|
33
|
+
- docs/003_requirements/spec/README.md
|
|
34
|
+
- docs/003_requirements/ui.template.md
|
|
35
|
+
- docs/003_requirements/api.template.md
|
|
36
|
+
- docs/006_development_workflow/impact-analysis.template.md
|
|
37
|
+
- docs/006_development_workflow/test-plan.template.md
|
|
38
38
|
|
|
39
39
|
## Implementation Guide (Frontend)
|
|
40
40
|
|
|
@@ -19,7 +19,7 @@
|
|
|
19
19
|
|
|
20
20
|
## Verification Template (Required)
|
|
21
21
|
|
|
22
|
-
Based on `docs/
|
|
22
|
+
Based on `docs/006_development_workflow/test-plan.template.md`, fill in at minimum:
|
|
23
23
|
- Target features/modules
|
|
24
24
|
- Normal/Error/Boundary cases
|
|
25
25
|
- Manual verification steps and expected results
|
|
@@ -35,7 +35,7 @@ Retrieve the following via **Git MCP / git commands** and build the body from fa
|
|
|
35
35
|
## Generation Rules (PR Optimization)
|
|
36
36
|
|
|
37
37
|
- **Title**: ~50 chars, change subject/purpose is unambiguous
|
|
38
|
-
- **Body**: Fully compliant with `docs/
|
|
38
|
+
- **Body**: Fully compliant with `docs/006_development_workflow/pr.template.md`
|
|
39
39
|
- **Changes**:
|
|
40
40
|
- Write **"why"** (background/purpose) briefly before "what"
|
|
41
41
|
- Change points in **bullet lists** at review-friendly granularity
|
|
@@ -14,9 +14,9 @@
|
|
|
14
14
|
|
|
15
15
|
## Quality Gate (Minimum)
|
|
16
16
|
|
|
17
|
-
- **Spec**: Sufficient specifications exist in `docs/
|
|
18
|
-
- **Impact scope**: `docs/
|
|
19
|
-
- **Test plan**: `docs/
|
|
17
|
+
- **Spec**: Sufficient specifications exist in `docs/003_requirements/spec/` and match implementation
|
|
18
|
+
- **Impact scope**: `docs/006_development_workflow/impact-analysis.template.md` is filled
|
|
19
|
+
- **Test plan**: `docs/006_development_workflow/test-plan.template.md` is filled
|
|
20
20
|
- **Compatibility/Migration**: If breaking changes exist, migration/rollback are documented
|
|
21
21
|
{{#if frontend.build_command}}- **Frontend changes**: `{{frontend.build_command}}` passes{{/if}}
|
|
22
22
|
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
|
|
15
15
|
## Success Criteria
|
|
16
16
|
|
|
17
|
-
- Purpose/completion criteria are measurably defined and distilled into **implementable-granularity Spec** (`docs/
|
|
17
|
+
- Purpose/completion criteria are measurably defined and distilled into **implementable-granularity Spec** (`docs/003_requirements/spec/`)
|
|
18
18
|
- If breaking changes/migration/rollback are needed, decision-making materials are prepared upfront
|
|
19
19
|
|
|
20
20
|
## Output (Minimum)
|
|
@@ -23,4 +23,4 @@
|
|
|
23
23
|
- Current understanding (assumptions)
|
|
24
24
|
- Unclear points (questions)
|
|
25
25
|
- Options (standard/conservative/bold) with recommendation
|
|
26
|
-
- Draft based on `docs/
|
|
26
|
+
- Draft based on `docs/003_requirements/spec/*-template.md` (API/UI/DB/Feature/Usecase)
|
|
@@ -18,4 +18,4 @@
|
|
|
18
18
|
- Authentication/Authorization (policy when needed)
|
|
19
19
|
- Information leakage (logs/error messages/screen display)
|
|
20
20
|
- External I/O (file/OS/network) failure behavior
|
|
21
|
-
- Error code design (`docs/
|
|
21
|
+
- Error code design (`docs/003_requirements/error-codes.template.md`)
|
|
@@ -15,7 +15,7 @@
|
|
|
15
15
|
# Role
|
|
16
16
|
|
|
17
17
|
This Agent's **sole responsibility is SSOT updates**.
|
|
18
|
-
It receives the "latest Spec (input)" and updates `docs/
|
|
18
|
+
It receives the "latest Spec (input)" and updates `docs/003_requirements/spec/`.
|
|
19
19
|
|
|
20
20
|
## Input (Required)
|
|
21
21
|
|
|
@@ -25,7 +25,7 @@ It receives the "latest Spec (input)" and updates `docs/009_spec/`.
|
|
|
25
25
|
|
|
26
26
|
## Acceptance Criteria (MUST)
|
|
27
27
|
|
|
28
|
-
- **Traceability (Spec→Implementation→Test)** is added/updated in `docs/
|
|
28
|
+
- **Traceability (Spec→Implementation→Test)** is added/updated in `docs/003_requirements/spec/index.md`
|
|
29
29
|
- Added/updated links point to existing files (file paths exist)
|
|
30
30
|
- If test commands don't exist/aren't ready, **document the fact** and alternative verification
|
|
31
31
|
- If ambiguity remains in Spec (terminology/completion criteria/exceptions), formalize as questions
|
|
@@ -33,7 +33,7 @@ It receives the "latest Spec (input)" and updates `docs/009_spec/`.
|
|
|
33
33
|
## Work Procedure (Standard)
|
|
34
34
|
|
|
35
35
|
1. Read input Spec, determine category (Feature/API/UI/Usecase/DB/Error)
|
|
36
|
-
2. Append to relevant section in `docs/
|
|
36
|
+
2. Append to relevant section in `docs/003_requirements/spec/index.md` (create if missing)
|
|
37
37
|
3. List referenced implementation files/test commands and verify existence
|
|
38
38
|
4. Fill in Spec template's "Implementation Reference" and "Test Reference" (mark missing as TODO)
|
|
39
39
|
5. Check for contradictions between added/updated Specs (same terminology/completion criteria)
|
|
@@ -18,11 +18,11 @@ Maintain the SSOT for Spec-Driven Development, preparing "implementable-granular
|
|
|
18
18
|
|
|
19
19
|
## References (SSOT)
|
|
20
20
|
|
|
21
|
-
- Spec: `docs/
|
|
22
|
-
- Templates: `docs/
|
|
21
|
+
- Spec: `docs/003_requirements/spec/`
|
|
22
|
+
- Templates: `docs/006_development_workflow/`
|
|
23
23
|
- Core guidelines: `AGENTS.md`
|
|
24
24
|
|
|
25
25
|
## Deliverables
|
|
26
26
|
|
|
27
27
|
- Spec additions/updates (API/UI/DB/Feature/Usecase/Error Codes)
|
|
28
|
-
- Impact analysis/Test plans/ADR/PR/Release notes (`docs/
|
|
28
|
+
- Impact analysis/Test plans/ADR/PR/Release notes (`docs/006_development_workflow` format)
|
|
@@ -16,4 +16,4 @@
|
|
|
16
16
|
|
|
17
17
|
- Bug fixes follow **reproduction test → fix → re-run** as the standard
|
|
18
18
|
- Cover at the appropriate nearby layer (Backend: Domain/Usecase, Front: hooks/pure functions)
|
|
19
|
-
- For large changes, fix perspectives first using `docs/
|
|
19
|
+
- For large changes, fix perspectives first using `docs/006_development_workflow/test-plan.template.md`
|
|
@@ -24,7 +24,7 @@ Enable developers to complete the full cycle — from environment setup to imple
|
|
|
24
24
|
- Humans review **only via GitHub PR diffs**
|
|
25
25
|
|
|
26
26
|
## Canonical References
|
|
27
|
-
- Spec: `docs/
|
|
27
|
+
- Spec: `docs/003_requirements/spec/`
|
|
28
28
|
{{#if frontend}}- Frontend quality gate: `{{frontend.build_command}}`
|
|
29
29
|
{{/if}}{{#if backend}}- Backend quality gate: `{{quality_gate.backend}}`
|
|
30
30
|
{{/if}}
|
|
@@ -14,52 +14,49 @@ ripla Notes(テキストノート / テーブルノート / drawio)で閲覧
|
|
|
14
14
|
|
|
15
15
|
```
|
|
16
16
|
docs/
|
|
17
|
-
├── README.md
|
|
17
|
+
├── README.md # docs 全体の入口・構成説明
|
|
18
18
|
├── 001_project/
|
|
19
|
-
│ ├── README.md
|
|
20
|
-
│ ├──
|
|
21
|
-
│ ├── features.csv
|
|
22
|
-
│
|
|
23
|
-
│ └── template_README.md
|
|
19
|
+
│ ├── README.md # プロジェクト概要(背景・目的・プロダクト・システム構成・用語)
|
|
20
|
+
│ ├── pages.csv # 各プロダクトの画面一覧(テーブルノート)と各画面の概要
|
|
21
|
+
│ ├── features.csv # 画面ごとの機能一覧(テーブルノート)と各機能の概要
|
|
22
|
+
│ └── tasks.csv # 開発チームからの質問リストと要件定義チームからの要望一覧
|
|
24
23
|
├── 002_business_flow/
|
|
25
|
-
│ ├── README.md
|
|
26
|
-
│
|
|
24
|
+
│ ├── README.md # ビジネスフロー概要、フォルダ内で整理するビジネスフロー一覧
|
|
25
|
+
│ ├── business_flow_name.template.md # 特定業務のビジネスフローを解説
|
|
26
|
+
│ └── business_flow_name.template.drawio # 特定業務のビジネスフローを図示
|
|
27
27
|
├── 003_requirements/
|
|
28
|
-
│ ├── README.md
|
|
29
|
-
│ ├── requirements
|
|
30
|
-
│
|
|
31
|
-
|
|
32
|
-
│
|
|
33
|
-
|
|
34
|
-
├──
|
|
35
|
-
│
|
|
36
|
-
│
|
|
37
|
-
│ └──
|
|
38
|
-
|
|
39
|
-
│
|
|
40
|
-
|
|
41
|
-
│ ├──
|
|
42
|
-
│ ├──
|
|
43
|
-
│ ├──
|
|
44
|
-
│
|
|
45
|
-
├──
|
|
46
|
-
│
|
|
47
|
-
│
|
|
48
|
-
|
|
49
|
-
│ ├──
|
|
50
|
-
│
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
├──
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
├──
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
│ └── README.md # 設定説明(環境変数・デプロイ設定等)
|
|
61
|
-
└── 012_setup/
|
|
62
|
-
└── README.md # セットアップ・デプロイ手順
|
|
28
|
+
│ ├── README.md # フォルダの説明、フォルダ内で整理するrequirements一覧
|
|
29
|
+
│ ├── requirements.template.md # 概要、背景、ユーザーストーリー、画面要件、機能要件、機能詳細、非機能要件、備考
|
|
30
|
+
│ ├── <Product Name>/ # 管理画面、ユーザー向け画面などプロダクトごとにフォルダ作成
|
|
31
|
+
│ │ └── <feature_name>.md # 機能別の要件定義
|
|
32
|
+
│ └── spec/ # 仕様 SSOT(API仕様、インフラ仕様、言語仕様等)
|
|
33
|
+
├── 004_pages/ # 画面設計
|
|
34
|
+
│ ├── README.md # フォルダの説明
|
|
35
|
+
│ └── app/ # 画面のURLパスを整理するため、Reactの app/ ディレクトリを配置
|
|
36
|
+
│ ├── admin/
|
|
37
|
+
│ │ └── corporations/
|
|
38
|
+
│ │ └── requirements.md # 画面ごとの画面要件を記載
|
|
39
|
+
│ └── users/
|
|
40
|
+
├── 005_architecture/ # 開発をするにあたっての実際の設計(インフラ、DB、API、各機能の設計)
|
|
41
|
+
│ ├── README.md # フォルダの説明
|
|
42
|
+
│ ├── stacks/ # 技術スタック
|
|
43
|
+
│ ├── api/ # APIのSwaggerなど
|
|
44
|
+
│ ├── db/ # DB設計(ER図など)
|
|
45
|
+
│ ├── infra/ # インフラアーキテクチャの設計
|
|
46
|
+
│ └── features/ # 各機能の設計
|
|
47
|
+
│ └── feature.template.md # 機能設計書、データフロー、DB設計などを記載
|
|
48
|
+
├── 006_development_workflow/ # 開発のルールやワークフローなどについて
|
|
49
|
+
│ ├── README.md # フォルダの説明
|
|
50
|
+
│ ├── git.md # Gitルール
|
|
51
|
+
│ └── workflow.md # 開発ワークフロー
|
|
52
|
+
└── 007_guides/ # ガイド集
|
|
53
|
+
├── README.md # フォルダの説明
|
|
54
|
+
├── godd_notes_usage.md # GoDD Notesの利用方法
|
|
55
|
+
├── godd_usage.md # GoDD のコマンド一覧、ツール一覧、利用方法
|
|
56
|
+
├── setup_godd.md # GoDD の始め方
|
|
57
|
+
├── setup_godd_notes.md # GoDD Notesの構築方法
|
|
58
|
+
├── setup_infra.md # インフラのCI/CDの構築ガイド
|
|
59
|
+
└── setup_local_environment.md # ローカル環境構築ガイド
|
|
63
60
|
```
|
|
64
61
|
|
|
65
62
|
## ルール
|
|
@@ -82,26 +79,11 @@ id,type,product,category,subject,detail,created_by,created_at,priority,deadline,
|
|
|
82
79
|
機能ID,機能名,概要,phase,優先度,ステータス
|
|
83
80
|
```
|
|
84
81
|
|
|
85
|
-
###
|
|
82
|
+
### pages.csv
|
|
86
83
|
```
|
|
87
84
|
画面ID,画面名,概要,提供フェーズ,関連機能ID,ステータス
|
|
88
85
|
```
|
|
89
86
|
|
|
90
|
-
### requirements-list.csv
|
|
91
|
-
```
|
|
92
|
-
要件ID,要件名,概要,優先度,ステータス
|
|
93
|
-
```
|
|
94
|
-
|
|
95
|
-
### nfr-list.csv
|
|
96
|
-
```
|
|
97
|
-
NFR-ID,カテゴリ,要件,基準,優先度
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
### page-definitions.csv
|
|
101
|
-
```
|
|
102
|
-
画面ID,画面名,URL,認証要否,概要
|
|
103
|
-
```
|
|
104
|
-
|
|
105
87
|
### tables.csv
|
|
106
88
|
```
|
|
107
89
|
テーブル名,カラム名,型,制約,説明
|
|
@@ -15,10 +15,10 @@ docs/
|
|
|
15
15
|
├── 001_project/ # プロジェクト概要、機能要件、画面要件
|
|
16
16
|
├── 002_business_flow/ # ビジネスフロー
|
|
17
17
|
├── 003_requirements/ # 要件定義
|
|
18
|
-
├──
|
|
19
|
-
├──
|
|
20
|
-
├──
|
|
21
|
-
└──
|
|
18
|
+
├── 004_pages/ # 画面設計
|
|
19
|
+
├── 005_architecture/ # 詳細設計(インフラ/DB/API/機能別)
|
|
20
|
+
├── 006_development_workflow/ # 開発ルール・ワークフロー
|
|
21
|
+
└── 007_guides/ # 利用・構築・運用ガイド
|
|
22
22
|
```
|
|
23
23
|
|
|
24
24
|
## ルール
|
|
@@ -35,12 +35,12 @@ docs/
|
|
|
35
35
|
| コード変更種別 | 影響するセクション |
|
|
36
36
|
|---|---|
|
|
37
37
|
| 新機能追加 | 001 (features.csv), 003 (requirements), 006 (features/) |
|
|
38
|
-
| API 変更 |
|
|
39
|
-
| DB スキーマ変更 |
|
|
40
|
-
| 画面追加/変更 | 001 (
|
|
41
|
-
| インフラ変更 |
|
|
42
|
-
| アーキテクチャ変更 |
|
|
43
|
-
| 開発フロー変更 |
|
|
38
|
+
| API 変更 | 005 (api/), 003 (requirements) |
|
|
39
|
+
| DB スキーマ変更 | 005 (db/) |
|
|
40
|
+
| 画面追加/変更 | 001 (pages.csv), 004 (app/) |
|
|
41
|
+
| インフラ変更 | 005 (infra/) |
|
|
42
|
+
| アーキテクチャ変更 | 005 (architecture.md) |
|
|
43
|
+
| 開発フロー変更 | 006 (workflow.md, git.md) |
|
|
44
44
|
| ビジネスフロー変更 | 002 (business_flow/) |
|
|
45
45
|
|
|
46
46
|
## 出力
|
|
@@ -23,7 +23,7 @@ notes-app (React + Vite) ──proxy──▶ notes-api (FastAPI) ──▶
|
|
|
23
23
|
| ローカルで試す / 開発環境 | `godd notes compose --auto` |
|
|
24
24
|
| 設定をカスタマイズしたい | `godd notes compose --config <path>` |
|
|
25
25
|
| AWS にデプロイ | `godd notes deploy -y` |
|
|
26
|
-
|
|
|
26
|
+
| インフラとアプリ雛形を新規構築 | `godd notes infra` |
|
|
27
27
|
|
|
28
28
|
### A. ローカルデプロイ(最も簡単)
|
|
29
29
|
|
|
@@ -79,6 +79,7 @@ godd notes compose --config notes-config.json
|
|
|
79
79
|
**前提**:
|
|
80
80
|
- AWS CLI でログイン済み(`aws sts get-caller-identity` が成功すること)
|
|
81
81
|
- `godd notes infra` でインフラ構築済み
|
|
82
|
+
- `notes-api/` と `notes-app/` がデプロイ対象ルートに存在すること
|
|
82
83
|
- `.godd-notes-infra.json` が存在すること
|
|
83
84
|
|
|
84
85
|
```bash
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
{{> project-context }}
|
|
12
12
|
|
|
13
13
|
## Purpose
|
|
14
|
-
Create a **Pull Request** on GitHub with a well-structured body following the PR template (`docs/
|
|
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
15
|
|
|
16
16
|
## Auto-confirm Mode
|
|
17
17
|
{{#if auto_confirm}}
|
|
@@ -27,7 +27,7 @@ Create a **Pull Request** on GitHub with a well-structured body following the PR
|
|
|
27
27
|
**draft is DISABLED (default)** — Create the PR as a regular (ready for review) PR.
|
|
28
28
|
{{/if}}
|
|
29
29
|
|
|
30
|
-
## PR Template (SSOT: `docs/
|
|
30
|
+
## PR Template (SSOT: `docs/006_development_workflow/pr.template.md`)
|
|
31
31
|
The PR body MUST follow this structure:
|
|
32
32
|
|
|
33
33
|
### TL;DR (3-7 lines)
|
|
@@ -32,7 +32,7 @@ Execute **pre-submission checks** and then **push to remote** (`git push`). The
|
|
|
32
32
|
- **If no unpushed commits**: Report "No commits to push" and exit
|
|
33
33
|
|
|
34
34
|
### Step 2: Pre-submission Checks (Quality Gate)
|
|
35
|
-
1. **Spec reflection**: Check if `docs/
|
|
35
|
+
1. **Spec reflection**: Check if `docs/003_requirements/spec/` needs updates for the changes
|
|
36
36
|
2. **Quality gate**: Run the project's quality gate commands:
|
|
37
37
|
- If available: `pnpm quality-gate` (or equivalent from project config)
|
|
38
38
|
- Fallback: lint + typecheck + test for changed areas
|
|
@@ -47,7 +47,7 @@ Execute **pre-submission checks** and then **push to remote** (`git push`). The
|
|
|
47
47
|
```
|
|
48
48
|
Pre-submission Check Results:
|
|
49
49
|
✅ Quality gate: Passed
|
|
50
|
-
✅ Spec reflection: No updates needed (or: Updated docs/
|
|
50
|
+
✅ Spec reflection: No updates needed (or: Updated docs/003_requirements/spec/xxx.md)
|
|
51
51
|
✅ Secret check: No secrets detected
|
|
52
52
|
✅ Breaking changes: None (or: Migration documented)
|
|
53
53
|
|
|
@@ -15,7 +15,7 @@ Organize everything that needs to be done before push/submission — ensuring no
|
|
|
15
15
|
|
|
16
16
|
## Output (Checklist)
|
|
17
17
|
- Local verification (required commands/results)
|
|
18
|
-
- Spec (`docs/
|
|
18
|
+
- Spec (`docs/003_requirements/spec`) reflection status
|
|
19
19
|
- Template (impact analysis/test plan/PR body) creation status
|
|
20
20
|
- Documentation of breaking changes/migration/rollback
|
|
21
21
|
- Secret information leakage check (logs/config/screenshots/etc.)
|
|
@@ -26,4 +26,4 @@ Transform requirements (natural language) into business flows (As-Is / To-Be) an
|
|
|
26
26
|
|
|
27
27
|
### Spec Mapping
|
|
28
28
|
- List the required Spec templates (UI/API/DB/Feature/Usecase/Error Codes) and recommend which to create
|
|
29
|
-
- Specs are placed under `docs/
|
|
29
|
+
- Specs are placed under `docs/003_requirements/spec/`
|
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
{{> project-context }}
|
|
12
12
|
|
|
13
13
|
## Purpose
|
|
14
|
-
Transform Specs (`docs/
|
|
14
|
+
Transform Specs (`docs/003_requirements/spec/`) into an implementable task list.
|
|
15
15
|
|
|
16
16
|
## Input
|
|
17
17
|
- Target Spec (API/UI/DB/Feature/Usecase/Error Codes)
|
|
@@ -43,7 +43,7 @@ Execute the **complete submission workflow**: pre-submission checks → git push
|
|
|
43
43
|
- If remote branch does not exist yet, run `git log --oneline -10` instead
|
|
44
44
|
3. Execute pre-submission checks:
|
|
45
45
|
- **Quality gate**: Run project's quality gate commands
|
|
46
|
-
- **Spec reflection**: Check if `docs/
|
|
46
|
+
- **Spec reflection**: Check if `docs/003_requirements/spec/` needs updates
|
|
47
47
|
- **Secret check**: Scan for potential secrets in committed content
|
|
48
48
|
- **Breaking changes**: Verify migration docs if breaking changes exist
|
|
49
49
|
4. Present check results
|
|
@@ -78,7 +78,7 @@ Execute the **complete submission workflow**: pre-submission checks → git push
|
|
|
78
78
|
- `git diff origin/<base>...HEAD --stat` for change summary
|
|
79
79
|
2. Generate PR content:
|
|
80
80
|
- **Title**: Use user-provided title, or derive from branch name and changes
|
|
81
|
-
- **Body**: Follow PR template (`docs/
|
|
81
|
+
- **Body**: Follow PR template (`docs/006_development_workflow/pr.template.md`) — fill ALL sections
|
|
82
82
|
3. Present PR title and body for review
|
|
83
83
|
|
|
84
84
|
{{#if auto_confirm}}
|
|
@@ -42,7 +42,7 @@ Sync the current working branch with the latest changes from the default branch
|
|
|
42
42
|
1. List conflicted files with `git diff --name-only --diff-filter=U`
|
|
43
43
|
2. Read each conflicted file and identify conflict markers (`<<<<<<<` / `=======` / `>>>>>>>`)
|
|
44
44
|
3. **Resolution policy (priority order)**:
|
|
45
|
-
1. **Keep the SSOT-compliant side**: If one side adheres to SSOT (`docs/
|
|
45
|
+
1. **Keep the SSOT-compliant side**: If one side adheres to SSOT (`docs/003_requirements/spec/`, `.github/agents/user-clone.agent.md`, etc.) and the other diverges, **adopt the compliant side**
|
|
46
46
|
2. **Both SSOT-compliant and integrable**: If both sides comply with SSOT and can be functionally integrated, **integrate both**
|
|
47
47
|
3. **Both compliant but integration difficult / uncertain**: If safe integration is not possible, **ask the user** (never guess)
|
|
48
48
|
4. After resolving all conflicts:
|