aiwf 0.1.0 → 0.3.0
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/CHANGELOG.md +44 -0
- package/CLAUDE.md +220 -0
- package/LICENSE +1 -1
- package/README.ko.md +90 -62
- package/README.md +89 -62
- package/claude-code/{simone/.simone → aiwf/en/.aiwf}/01_PROJECT_DOCS/ARCHITECTURE.md +1 -1
- package/claude-code/{simone/.simone → aiwf/en/.aiwf}/02_REQUIREMENTS/M01_Backend_Setup/M01_milestone_meta.md +5 -1
- package/claude-code/{simone/.simone → aiwf/en/.aiwf}/02_REQUIREMENTS/M01_Backend_Setup/PRD_AMEND_01_Auth_Flow_Update.md +5 -1
- package/claude-code/{simone/.simone/03_SPRINTS/CLAUDE.MD → aiwf/en/.aiwf/03_SPRINTS/CLAUDE.md} +28 -7
- package/claude-code/{simone/.simone → aiwf/en/.aiwf}/03_SPRINTS/S01_M01_Initial_API/S01_sprint_meta.md +8 -1
- package/claude-code/{simone/.simone → aiwf/en/.aiwf}/03_SPRINTS/S01_M01_Initial_API/T01_S01_Setup_Project_Structure.md +5 -1
- package/claude-code/aiwf/en/.aiwf/04_GENERAL_TASKS/CLAUDE.md +96 -0
- package/claude-code/{simone/.simone → aiwf/en/.aiwf}/04_GENERAL_TASKS/T002_API_Rate_Limiting.md +7 -2
- package/claude-code/{simone/.simone → aiwf/en/.aiwf}/04_GENERAL_TASKS/TX001_Refactor_Logging_Module.md +7 -2
- package/claude-code/{simone/.simone → aiwf/en/.aiwf}/05_ARCHITECTURAL_DECISIONS/ADR001_Chosen_Database_System.md +7 -1
- package/claude-code/{simone/.simone → aiwf/en/.aiwf}/05_ARCHITECTURAL_DECISIONS/ADR002_API_Authentication_Method.md +7 -1
- package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-12-12-00-needs-focus.md +139 -0
- package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-12-12-00-test-alignment.md +155 -0
- package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-13-00-50-solid-progress.md +122 -0
- package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-14-08-30-infrastructure-challenges.md +141 -0
- package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-16-21-48-critical-foundation-issues.md +177 -0
- package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/2025-06-17-15-08-solid-progress.md +149 -0
- package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/index.json +5 -0
- package/claude-code/aiwf/en/.aiwf/10_STATE_OF_PROJECT/sync-index.js +78 -0
- package/claude-code/aiwf/en/.aiwf/98_PROMPTS/github_integration.md +130 -0
- package/claude-code/aiwf/en/.aiwf/98_PROMPTS/useful-prompts.md +31 -0
- package/claude-code/aiwf/en/.aiwf/98_PROMPTS/vibe-front-prompts.md +89 -0
- package/claude-code/{simone/.simone → aiwf/en/.aiwf}/99_TEMPLATES/task_template.md +1 -0
- package/claude-code/{simone/.simone/CLAUDE.MD → aiwf/en/.aiwf/CLAUDE.md} +13 -4
- package/claude-code/{simone/.simone → aiwf/en/.aiwf}/README.md +6 -6
- package/claude-code/aiwf/en/.claude/CLAUDE_BE.md +276 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_changelog.md +82 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_code_review.md +88 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_commit.md +160 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_general_task.md +147 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_milestone_plan.md +194 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_prd.md +272 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_sprint_tasks.md +189 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_create_sprints_from_milestone.md +121 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_discuss_review.md +29 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_do_task.md +109 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_infinite.md +202 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_initialize.md +134 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_issue_create.md +65 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_mermaid.md +272 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_pr_create.md +76 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_prime.md +9 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_prime_context.md +5 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_project_review.md +261 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_test.md +125 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_testing_review.md +198 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_tm-run-all-subtask.md +206 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_ultrathink_code_advanced.md +460 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_ultrathink_code_basic.md +165 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_ultrathink_general.md +362 -0
- package/claude-code/aiwf/en/.claude/commands/aiwf/aiwf_yolo.md +300 -0
- package/claude-code/aiwf/en/.claude/mcp.json +31 -0
- package/claude-code/aiwf/en/.claude/settings.json +102 -0
- package/claude-code/aiwf/ko/.aiwf/00_PROJECT_MANIFEST.md +49 -0
- package/claude-code/aiwf/ko/.aiwf/01_PROJECT_DOCS/ARCHITECTURE.md +55 -0
- package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/CLAUDE.md +78 -0
- package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/M01_milestone_meta.md +42 -0
- package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/PRD_AMEND_01_Auth_Flow_Update.md +73 -0
- package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/PRD_Backend_Setup.md +98 -0
- package/claude-code/aiwf/ko/.aiwf/02_REQUIREMENTS/M01_Backend_Setup/SPECS_API_V1.md +232 -0
- package/claude-code/aiwf/ko/.aiwf/03_SPRINTS/CLAUDE.md +83 -0
- package/claude-code/aiwf/ko/.aiwf/03_SPRINTS/S01_M01_Initial_API/S01_sprint_meta.md +49 -0
- package/claude-code/aiwf/ko/.aiwf/03_SPRINTS/S01_M01_Initial_API/T01_S01_Setup_Project_Structure.md +60 -0
- package/claude-code/aiwf/ko/.aiwf/04_GENERAL_TASKS/CLAUDE.md +96 -0
- package/claude-code/aiwf/ko/.aiwf/04_GENERAL_TASKS/T002_API_Rate_Limiting.md +54 -0
- package/claude-code/aiwf/ko/.aiwf/04_GENERAL_TASKS/TX001_Refactor_Logging_Module.md +58 -0
- package/claude-code/aiwf/ko/.aiwf/05_ARCHITECTURAL_DECISIONS/ADR001_Chosen_Database_System.md +119 -0
- package/claude-code/aiwf/ko/.aiwf/05_ARCHITECTURAL_DECISIONS/ADR002_API_Authentication_Method.md +124 -0
- package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-12-12-00-needs-focus.md +139 -0
- package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-12-12-00-test-alignment.md +155 -0
- package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-13-00-50-solid-progress.md +122 -0
- package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-14-08-30-infrastructure-challenges.md +141 -0
- package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-16-21-48-critical-foundation-issues.md +177 -0
- package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/2025-06-17-15-08-solid-progress.md +149 -0
- package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/index.json +5 -0
- package/claude-code/aiwf/ko/.aiwf/10_STATE_OF_PROJECT/sync-index.js +78 -0
- package/claude-code/aiwf/ko/.aiwf/98_PROMPTS/github_integration.md +130 -0
- package/claude-code/aiwf/ko/.aiwf/98_PROMPTS/useful-prompts.md +31 -0
- package/claude-code/aiwf/ko/.aiwf/98_PROMPTS/vibe-front-prompts.md +89 -0
- package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/adr_template.md +49 -0
- package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/milestone_meta_template.md +25 -0
- package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/project_manifest_template.md +39 -0
- package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/sprint_meta_template.md +23 -0
- package/claude-code/aiwf/ko/.aiwf/99_TEMPLATES/task_template.md +36 -0
- package/claude-code/aiwf/ko/.aiwf/CLAUDE.md +76 -0
- package/claude-code/aiwf/ko/.aiwf/README.md +97 -0
- package/claude-code/aiwf/ko/.claude/CLAUDE_BE.md +276 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_changelog.md +82 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_code_review.md +88 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_commit.md +160 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_general_task.md +147 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_milestone_plan.md +194 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_prd.md +280 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_sprint_tasks.md +189 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_create_sprints_from_milestone.md +121 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_discuss_review.md +29 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_do_task.md +109 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_infinite.md +202 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_initialize.md +134 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_issue_create.md +65 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_mermaid.md +272 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_pr_create.md +76 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_prime.md +9 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_prime_context.md +8 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_project_review.md +261 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_test.md +125 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_testing_review.md +198 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_tm-run-all-subtask.md +210 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_ultrathink_code_advanced.md +460 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_ultrathink_code_basic.md +165 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_ultrathink_general.md +362 -0
- package/claude-code/aiwf/ko/.claude/commands/aiwf/aiwf_yolo.md +300 -0
- package/claude-code/aiwf/ko/.claude/mcp.json +31 -0
- package/claude-code/aiwf/ko/.claude/settings.json +102 -0
- package/{AI-WORKFLOW.md → docs/AI-WORKFLOW.ko.md} +31 -24
- package/docs/AI-WORKFLOW.md +292 -0
- package/docs/COMMANDS_GUIDE.ko.md +637 -0
- package/docs/COMMANDS_GUIDE.md +636 -0
- package/docs/CONTRIBUTING.md +406 -0
- package/docs/DEVELOPMENT_GUIDE.md +727 -0
- package/{PRD.ko.md → docs/PRD.ko.md} +9 -9
- package/{PRD.md → docs/PRD.md} +9 -9
- package/docs/moonklabs-metadata-system-prd.md +127 -0
- package/index.js +272 -121
- package/package.json +12 -7
- package/COMMANDS_GUIDE.md +0 -462
- package/claude-code/simone/.simone/04_GENERAL_TASKS/CLAUDE.MD +0 -51
- package/claude-code/simone/CHANGELOG.md +0 -71
- package/claude-code/simone/LICENSE +0 -21
- package/claude-code/simone/README.md +0 -219
- package/claude-code/simone/SYNC_GUIDE.md +0 -172
- package/claude-code/simone/sync-simone.sh +0 -138
- /package/claude-code/{simone/.simone → aiwf/en/.aiwf}/00_PROJECT_MANIFEST.md +0 -0
- /package/claude-code/{simone/.simone → aiwf/en/.aiwf}/02_REQUIREMENTS/CLAUDE.md +0 -0
- /package/claude-code/{simone/.simone → aiwf/en/.aiwf}/02_REQUIREMENTS/M01_Backend_Setup/PRD_Backend_Setup.md +0 -0
- /package/claude-code/{simone/.simone → aiwf/en/.aiwf}/02_REQUIREMENTS/M01_Backend_Setup/SPECS_API_V1.md +0 -0
- /package/claude-code/{simone/.simone → aiwf/en/.aiwf}/99_TEMPLATES/adr_template.md +0 -0
- /package/claude-code/{simone/.simone → aiwf/en/.aiwf}/99_TEMPLATES/milestone_meta_template.md +0 -0
- /package/claude-code/{simone/.simone → aiwf/en/.aiwf}/99_TEMPLATES/project_manifest_template.md +0 -0
- /package/claude-code/{simone/.simone → aiwf/en/.aiwf}/99_TEMPLATES/sprint_meta_template.md +0 -0
package/README.md
CHANGED
|
@@ -1,30 +1,33 @@
|
|
|
1
|
-
|
|
1
|
+
# AIWF (AI Workflow Framework)
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
[Read in Korean (한국어로 보기)](README.ko.md)
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
[](https://www.npmjs.com/package/aiwf)
|
|
6
|
+
[](https://github.com/aiwf/aiwf/blob/main/LICENSE)
|
|
7
|
+
[](https://www.npmjs.com/package/aiwf)
|
|
6
8
|
|
|
7
|
-
|
|
9
|
+
## What is AIWF?
|
|
8
10
|
|
|
9
|
-
|
|
11
|
+
AIWF is a markdown-based project management framework designed specifically for AI-assisted development with Claude Code. It helps break down software projects into manageable units that AI can effectively handle, maximizing productivity.
|
|
10
12
|
|
|
11
|
-
|
|
13
|
+
This project is an updated version of [Simone](https://github.com/Helmi/claude-simone).
|
|
12
14
|
|
|
13
|
-
## Installation
|
|
15
|
+
## 📦 Installation
|
|
14
16
|
|
|
15
|
-
Install
|
|
17
|
+
Install AIWF in any project directory:
|
|
16
18
|
|
|
17
19
|
```bash
|
|
18
20
|
npx aiwf
|
|
19
21
|
```
|
|
20
22
|
|
|
21
|
-
|
|
23
|
+
The installer will:
|
|
22
24
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
25
|
+
1. **Language Selection**: Choose between English and Korean
|
|
26
|
+
2. **Directory Setup**: Create the `.aiwf/` directory structure for project management
|
|
27
|
+
3. **Commands**: Set up `.claude/commands/aiwf/` with localized Claude commands
|
|
28
|
+
4. **Content**: Download the latest templates and documentation in your selected language
|
|
26
29
|
|
|
27
|
-
## Usage
|
|
30
|
+
## 🚀 Usage
|
|
28
31
|
|
|
29
32
|
### First Time Installation
|
|
30
33
|
|
|
@@ -34,7 +37,7 @@ npx aiwf
|
|
|
34
37
|
|
|
35
38
|
### Update Existing Installation
|
|
36
39
|
|
|
37
|
-
If
|
|
40
|
+
If AIWF is already installed, the installer will automatically detect it and offer options to:
|
|
38
41
|
|
|
39
42
|
- Update (with automatic backup)
|
|
40
43
|
- Skip installation
|
|
@@ -42,76 +45,100 @@ If Moonklabs is already installed, the installer will detect it and offer option
|
|
|
42
45
|
|
|
43
46
|
### Force Installation
|
|
44
47
|
|
|
45
|
-
Skip all prompts and force installation:
|
|
48
|
+
Skip all prompts and force installation (defaults to English):
|
|
46
49
|
|
|
47
50
|
```bash
|
|
48
51
|
npx aiwf --force
|
|
49
52
|
```
|
|
50
53
|
|
|
51
|
-
|
|
54
|
+
### Language-Specific Installation
|
|
52
55
|
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
│
|
|
66
|
-
│
|
|
67
|
-
├──
|
|
68
|
-
├──
|
|
69
|
-
├──
|
|
70
|
-
├──
|
|
71
|
-
├──
|
|
72
|
-
├──
|
|
73
|
-
|
|
74
|
-
├──
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
│ ├── code-style-guide.md
|
|
78
|
-
│ ├── coding-principles.md
|
|
79
|
-
│ ├── development-process.md
|
|
80
|
-
│ └── global-rules.md
|
|
81
|
-
└── manual/
|
|
82
|
-
└── generate-plan-docs.md
|
|
56
|
+
The installer automatically selects the appropriate language version based on your choice:
|
|
57
|
+
|
|
58
|
+
- English version: English commands and documentation (default)
|
|
59
|
+
- Korean version: Korean commands and documentation
|
|
60
|
+
|
|
61
|
+
## 📁 What Gets Installed
|
|
62
|
+
|
|
63
|
+
### Directory Structure
|
|
64
|
+
|
|
65
|
+
```text
|
|
66
|
+
your_project/
|
|
67
|
+
├── .aiwf/ # Project management root
|
|
68
|
+
│ ├── 00_PROJECT_MANIFEST.md # Central tracking document
|
|
69
|
+
│ ├── 01_PROJECT_DOCS/ # Project documentation
|
|
70
|
+
│ ├── 02_REQUIREMENTS/ # Milestone requirements
|
|
71
|
+
│ ├── 03_SPRINTS/ # Sprint execution tracking
|
|
72
|
+
│ ├── 04_GENERAL_TASKS/ # Standalone tasks
|
|
73
|
+
│ ├── 05_ARCHITECTURE_DECISIONS/ # ADR documents
|
|
74
|
+
│ ├── 10_STATE_OF_PROJECT/ # Project state snapshots
|
|
75
|
+
│ ├── 98_PROMPTS/ # Useful AI prompts
|
|
76
|
+
│ └── 99_TEMPLATES/ # Document templates
|
|
77
|
+
├── .claude/commands/aiwf/ # Language-specific Claude commands
|
|
78
|
+
├── .cursor/rules/ # Cursor IDE development rules
|
|
79
|
+
└── .windsurf/rules/ # Windsurf IDE development rules
|
|
83
80
|
```
|
|
84
81
|
|
|
85
|
-
|
|
82
|
+
### Language-Specific Content
|
|
83
|
+
|
|
84
|
+
Based on your language selection, you'll get:
|
|
85
|
+
|
|
86
|
+
**English Version (`en/`)** (Default):
|
|
87
|
+
|
|
88
|
+
- English Claude commands
|
|
89
|
+
- English documentation and templates
|
|
90
|
+
- Standard project management content
|
|
91
|
+
|
|
92
|
+
**Korean Version (`ko/`)**:
|
|
93
|
+
|
|
94
|
+
- Korean Claude commands (with `_kr` suffix available)
|
|
95
|
+
- Korean documentation and templates
|
|
96
|
+
- Localized project management content
|
|
97
|
+
|
|
98
|
+
## 🎯 Getting Started
|
|
86
99
|
|
|
87
100
|
After installation:
|
|
88
101
|
|
|
89
102
|
1. Open your project in Claude Code
|
|
90
|
-
2. Use `/project:
|
|
91
|
-
3. Start with `/project:
|
|
103
|
+
2. Use `/project:aiwf` commands to manage your project
|
|
104
|
+
3. Start with `/project:aiwf:initialize` to set up your project
|
|
105
|
+
|
|
106
|
+
### Key Commands
|
|
107
|
+
|
|
108
|
+
- **Initialize**: `/project:aiwf:initialize` - Initial project setup
|
|
109
|
+
- **Plan**: `/project:aiwf:plan_milestone` - Create milestone plans
|
|
110
|
+
- **Sprint**: `/project:aiwf:create_sprints_from_milestone` - Generate sprints
|
|
111
|
+
- **Task**: `/project:aiwf:do_task` - Execute tasks
|
|
112
|
+
- **Review**: `/project:aiwf:code_review` - Code review
|
|
113
|
+
- **GitHub Integration**: `/project:aiwf:issue_create`, `/project:aiwf:pr_create`
|
|
92
114
|
|
|
93
|
-
##
|
|
115
|
+
## 📚 Documentation
|
|
94
116
|
|
|
95
|
-
For a
|
|
117
|
+
For a complete list of AIWF commands and detailed usage, see [COMMANDS_GUIDE.md](docs/COMMANDS_GUIDE.md).
|
|
96
118
|
|
|
97
|
-
## Features
|
|
119
|
+
## ✨ Features
|
|
98
120
|
|
|
99
|
-
-
|
|
100
|
-
-
|
|
101
|
-
-
|
|
102
|
-
-
|
|
103
|
-
-
|
|
121
|
+
- 🌍 **Multi-language Support** - Complete English and Korean support
|
|
122
|
+
- 🎨 **Beautiful CLI** - User-friendly interface with colors and progress indicators
|
|
123
|
+
- 🔄 **Smart Updates** - Intelligent update detection with automatic backups
|
|
124
|
+
- 📦 **Direct Download** - Downloads directly from official GitHub repository
|
|
125
|
+
- 🚀 **Easy to Use** - Works with `npx` - no global installation needed
|
|
126
|
+
- 💾 **Safe Backups** - Creates timestamped backups when updating
|
|
127
|
+
- 🎯 **Language-Specific** - Language-specific commands and documentation
|
|
128
|
+
- 🔧 **IDE Integration** - Cursor and Windsurf development rules support
|
|
129
|
+
- 🔗 **GitHub Integration** - Automated issue and PR creation
|
|
130
|
+
- 📊 **Project Tracking** - Systematic management of milestones, sprints, and tasks
|
|
104
131
|
|
|
105
|
-
## Requirements
|
|
132
|
+
## 🔧 Requirements
|
|
106
133
|
|
|
107
134
|
- Node.js 14.0.0 or higher
|
|
108
135
|
- Internet connection to download from GitHub
|
|
109
136
|
|
|
110
|
-
## Source
|
|
137
|
+
## 📖 Source
|
|
111
138
|
|
|
112
|
-
This installer fetches the
|
|
113
|
-
https://github.com/
|
|
139
|
+
This installer fetches the AIWF framework from:
|
|
140
|
+
<https://github.com/aiwf/aiwf>
|
|
114
141
|
|
|
115
|
-
## License
|
|
142
|
+
## 📝 License
|
|
116
143
|
|
|
117
144
|
MIT
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Demo Project Architecture (EXAMPLE)
|
|
2
2
|
|
|
3
|
-
This document outlines the high-level architecture of the Demo Project. **This is an example document to demonstrate how architecture might be documented in the
|
|
3
|
+
This document outlines the high-level architecture of the Demo Project. **This is an example document to demonstrate how architecture might be documented in the AIWF framework.**
|
|
4
4
|
|
|
5
5
|
## System Overview
|
|
6
6
|
|
|
@@ -8,6 +8,7 @@ last_updated: 2023-07-10
|
|
|
8
8
|
# Milestone: Backend Setup (EXAMPLE)
|
|
9
9
|
|
|
10
10
|
## Goals
|
|
11
|
+
|
|
11
12
|
This milestone focuses on establishing the core backend infrastructure for the project, including:
|
|
12
13
|
|
|
13
14
|
1. Setting up the initial project structure
|
|
@@ -16,11 +17,13 @@ This milestone focuses on establishing the core backend infrastructure for the p
|
|
|
16
17
|
4. Establishing authentication and authorization systems
|
|
17
18
|
|
|
18
19
|
## Key Documents
|
|
20
|
+
|
|
19
21
|
- [Product Requirements Document](./PRD_Backend_Setup.md)
|
|
20
22
|
- [API Specifications V1](./SPECS_API_V1.md)
|
|
21
23
|
- [Auth Flow Update Amendment](./PRD_AMEND_01_Auth_Flow_Update.md)
|
|
22
24
|
|
|
23
25
|
## Definition of Done (DoD)
|
|
26
|
+
|
|
24
27
|
This milestone will be considered complete when:
|
|
25
28
|
|
|
26
29
|
- The backend server can be started and responds to API requests
|
|
@@ -30,7 +33,8 @@ This milestone will be considered complete when:
|
|
|
30
33
|
- Integration tests are passing for all endpoints
|
|
31
34
|
|
|
32
35
|
## Notes / Context
|
|
33
|
-
|
|
36
|
+
|
|
37
|
+
This is an example milestone document to demonstrate how milestones might be structured in a project using the AIWF framework. The backend infrastructure established here would be the foundation for a typical web application.
|
|
34
38
|
|
|
35
39
|
## Related Sprints
|
|
36
40
|
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
|
|
7
7
|
This amendment updates the authentication flow requirements to incorporate OAuth 2.0 support for social logins in addition to the existing email/password authentication.
|
|
8
8
|
|
|
9
|
-
**Note: This is an example amendment document to demonstrate how requirement changes might be tracked in the
|
|
9
|
+
**Note: This is an example amendment document to demonstrate how requirement changes might be tracked in the AIWF framework.**
|
|
10
10
|
|
|
11
11
|
## Changes to Product Requirements
|
|
12
12
|
|
|
@@ -23,12 +23,14 @@ This amendment updates the authentication flow requirements to incorporate OAuth
|
|
|
23
23
|
**Updated FR-2.1 (User model):**
|
|
24
24
|
|
|
25
25
|
Add the following fields to the User model:
|
|
26
|
+
|
|
26
27
|
- `oauth_provider`: string (null, 'google', 'github')
|
|
27
28
|
- `oauth_id`: string (provider-specific user ID)
|
|
28
29
|
|
|
29
30
|
### API Endpoints (FR-3)
|
|
30
31
|
|
|
31
32
|
**Added Endpoints to FR-3.1:**
|
|
33
|
+
|
|
32
34
|
- GET /api/auth/oauth/google (Redirect URL for Google OAuth)
|
|
33
35
|
- GET /api/auth/oauth/github (Redirect URL for GitHub OAuth)
|
|
34
36
|
- GET /api/auth/oauth/callback (OAuth provider callback)
|
|
@@ -36,9 +38,11 @@ Add the following fields to the User model:
|
|
|
36
38
|
## Changes to Non-Functional Requirements
|
|
37
39
|
|
|
38
40
|
**Updated NFR-5:**
|
|
41
|
+
|
|
39
42
|
- NFR-5: The system shall implement JWT-based authentication with support for OAuth 2.0 providers
|
|
40
43
|
|
|
41
44
|
**Added NFR:**
|
|
45
|
+
|
|
42
46
|
- NFR-9: The system shall securely store OAuth provider credentials in environment variables
|
|
43
47
|
|
|
44
48
|
## Implementation Impact
|
package/claude-code/{simone/.simone/03_SPRINTS/CLAUDE.MD → aiwf/en/.aiwf/03_SPRINTS/CLAUDE.md}
RENAMED
|
@@ -35,7 +35,7 @@ Update status as progress occurs:
|
|
|
35
35
|
|
|
36
36
|
- planning → in_progress → review → complete
|
|
37
37
|
|
|
38
|
-
Always use the template at `.
|
|
38
|
+
Always use the template at `.AIWF/99_TEMPLATES/sprint_template.md` when creating new sprint meta files.
|
|
39
39
|
|
|
40
40
|
## Sprint Tasks
|
|
41
41
|
|
|
@@ -47,16 +47,37 @@ Tasks within a sprint follow a standard format:
|
|
|
47
47
|
- Update status to "done"
|
|
48
48
|
- Rename file from T... to TX... (e.g., `TX01_S01_Task_Name.md`)
|
|
49
49
|
- Update Output Log with final entry
|
|
50
|
+
- If GitHub issue is linked, update issue status
|
|
50
51
|
|
|
51
|
-
Always use the template at `.
|
|
52
|
+
Always use the template at `.AIWF/99_TEMPLATES/task_template.md` when creating new sprint tasks.
|
|
53
|
+
|
|
54
|
+
### GitHub Issue Integration
|
|
55
|
+
|
|
56
|
+
When working with tasks that have GitHub issues:
|
|
57
|
+
|
|
58
|
+
1. **Creating Issues**: Use `/project:aiwf:issue_create {task_id}` to create a GitHub issue from a task
|
|
59
|
+
2. **Linking Issues**: Add `github_issue: #123` to task frontmatter
|
|
60
|
+
3. **Status Updates**: Update issue status when task status changes
|
|
61
|
+
4. **Commit Integration**: Include `fixes #123` or `relates to #456` in commit messages
|
|
62
|
+
5. **Pull Requests**: Use `/project:aiwf:pr_create {task_id}` to create PR with issue linking
|
|
52
63
|
|
|
53
64
|
## Working with Sprint Tasks
|
|
54
65
|
|
|
55
66
|
When executing a sprint task:
|
|
56
67
|
|
|
57
68
|
1. Analyze task's Acceptance Criteria and Subtasks
|
|
58
|
-
2.
|
|
59
|
-
3.
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
69
|
+
2. Check if task has a linked GitHub issue (look for `github_issue` in frontmatter)
|
|
70
|
+
3. Update status to "in_progress" and update GitHub issue if linked:
|
|
71
|
+
```bash
|
|
72
|
+
gh issue comment {issue_number} --body "🚀 Task work has started."
|
|
73
|
+
gh issue edit {issue_number} --add-label "in-progress"
|
|
74
|
+
```
|
|
75
|
+
4. Log activities in the Output Log with timestamps after every Subtask(!)
|
|
76
|
+
5. Mark subtasks as completed using [x] only when they are really completed. If you were not able to complete them, don't mark them and tell the user.
|
|
77
|
+
6. Reference architectural guidelines when implementing technical solutions
|
|
78
|
+
7. Ensure the task follows the structure from the task template
|
|
79
|
+
8. When task is complete, update GitHub issue if linked:
|
|
80
|
+
```bash
|
|
81
|
+
gh issue comment {issue_number} --body "✅ Task has been completed."
|
|
82
|
+
gh issue edit {issue_number} --remove-label "in-progress" --add-label "completed"
|
|
83
|
+
```
|
|
@@ -11,9 +11,11 @@ last_updated: 2023-07-15
|
|
|
11
11
|
# Sprint: Initial API Development (S01) (EXAMPLE)
|
|
12
12
|
|
|
13
13
|
## Sprint Goal
|
|
14
|
+
|
|
14
15
|
Implement the foundational API structure including user authentication, basic project endpoints, and the initial database models.
|
|
15
16
|
|
|
16
17
|
## Scope & Key Deliverables
|
|
18
|
+
|
|
17
19
|
1. Set up the project structure with Express.js and MongoDB
|
|
18
20
|
2. Implement user registration and authentication endpoints
|
|
19
21
|
3. Create basic project and task models
|
|
@@ -21,6 +23,7 @@ Implement the foundational API structure including user authentication, basic pr
|
|
|
21
23
|
5. Set up automated testing infrastructure
|
|
22
24
|
|
|
23
25
|
## Sprint Backlog
|
|
26
|
+
|
|
24
27
|
- [T01_S01_Setup_Project_Structure](./T01_S01_Setup_Project_Structure.md)
|
|
25
28
|
- [T02_S01_Define_User_Model](./T02_S01_Define_User_Model.md)
|
|
26
29
|
- [T03_S01_Implement_Auth_Endpoints](./T03_S01_Implement_Auth_Endpoints.md)
|
|
@@ -28,15 +31,19 @@ Implement the foundational API structure including user authentication, basic pr
|
|
|
28
31
|
- [T05_S01_Implement_Project_Endpoints](./T05_S01_Implement_Project_Endpoints.md)
|
|
29
32
|
|
|
30
33
|
## Definition of Done (for the Sprint)
|
|
34
|
+
|
|
31
35
|
The sprint will be considered complete when:
|
|
36
|
+
|
|
32
37
|
- All sprint tasks are completed and meet their acceptance criteria
|
|
33
38
|
- All implemented endpoints pass their test cases
|
|
34
39
|
- API documentation is updated to reflect implemented endpoints
|
|
35
40
|
- Code has been reviewed and merged to the development branch
|
|
36
41
|
|
|
37
42
|
## Notes / Context
|
|
38
|
-
|
|
43
|
+
|
|
44
|
+
This is an example sprint document to demonstrate how sprints might be structured in a project using the AIWF framework. This simulates what a typical initial API development sprint might look like.
|
|
39
45
|
|
|
40
46
|
## Related Documents
|
|
47
|
+
|
|
41
48
|
- [Milestone M01: Backend Setup](../../02_REQUIREMENTS/M01_Backend_Setup/M01_milestone_meta.md)
|
|
42
49
|
- [API Specifications V1](../../02_REQUIREMENTS/M01_Backend_Setup/SPECS_API_V1.md)
|
|
@@ -9,11 +9,13 @@ last_updated: 2023-07-15
|
|
|
9
9
|
# Task: Setup Project Structure (EXAMPLE)
|
|
10
10
|
|
|
11
11
|
## Description
|
|
12
|
+
|
|
12
13
|
Set up the initial project structure for the backend API service, including directory organization, dependency installation, and basic configuration.
|
|
13
14
|
|
|
14
|
-
**Note: This is an example task to demonstrate the structure of a task in the
|
|
15
|
+
**Note: This is an example task to demonstrate the structure of a task in the AIWF framework.**
|
|
15
16
|
|
|
16
17
|
## Goal / Objectives
|
|
18
|
+
|
|
17
19
|
- Create a well-organized, scalable project structure
|
|
18
20
|
- Set up the Express.js application with middleware
|
|
19
21
|
- Configure MongoDB connection
|
|
@@ -22,6 +24,7 @@ Set up the initial project structure for the backend API service, including dire
|
|
|
22
24
|
- Initialize logging system
|
|
23
25
|
|
|
24
26
|
## Acceptance Criteria
|
|
27
|
+
|
|
25
28
|
- [ ] Project structure follows MVC pattern with clear separation of concerns
|
|
26
29
|
- [ ] Express application is set up with necessary middleware (CORS, body-parser, etc.)
|
|
27
30
|
- [ ] MongoDB connection is configured with error handling
|
|
@@ -32,6 +35,7 @@ Set up the initial project structure for the backend API service, including dire
|
|
|
32
35
|
- [ ] Initial tests pass
|
|
33
36
|
|
|
34
37
|
## Subtasks
|
|
38
|
+
|
|
35
39
|
- [ ] Initialize Node.js project with package.json
|
|
36
40
|
- [ ] Install core dependencies (express, mongoose, dotenv, etc.)
|
|
37
41
|
- [ ] Create directory structure for routes, controllers, models, middleware
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
# General Tasks Instructions
|
|
2
|
+
|
|
3
|
+
## General Task Structure
|
|
4
|
+
|
|
5
|
+
General tasks are standalone work items not tied to sprints:
|
|
6
|
+
|
|
7
|
+
- Files follow pattern: `T<NNN>_<Description>.md`
|
|
8
|
+
- Completed tasks: `TX<NNN>_<Description>.md`
|
|
9
|
+
|
|
10
|
+
Always use the template at `.AIWF/99_TEMPLATES/task_template.md` when creating new general tasks.
|
|
11
|
+
|
|
12
|
+
## Task Formatting
|
|
13
|
+
|
|
14
|
+
General tasks use standardized YAML frontmatter and sections:
|
|
15
|
+
|
|
16
|
+
```yaml
|
|
17
|
+
---
|
|
18
|
+
task_id: T001
|
|
19
|
+
status: open # open | in_progress | pending_review | done | failed | blocked
|
|
20
|
+
complexity: Medium # Low | Medium | High
|
|
21
|
+
last_updated: YYYY-MM-DD HH:MM
|
|
22
|
+
github_issue: #123 # Optional: Link to GitHub issue
|
|
23
|
+
---
|
|
24
|
+
```
|
|
25
|
+
|
|
26
|
+
The full task structure with all sections is defined in the task template. Always maintain this structure.
|
|
27
|
+
|
|
28
|
+
## Working with General Tasks
|
|
29
|
+
|
|
30
|
+
When handling general tasks:
|
|
31
|
+
|
|
32
|
+
1. Check if task has a linked GitHub issue (look for `github_issue` in frontmatter)
|
|
33
|
+
2. Update the status field as you progress
|
|
34
|
+
3. If GitHub issue is linked, update it when starting:
|
|
35
|
+
```bash
|
|
36
|
+
gh issue comment {issue_number} --body "🚀 Task work has started."
|
|
37
|
+
gh issue edit {issue_number} --add-label "in-progress"
|
|
38
|
+
```
|
|
39
|
+
4. Record timestamps in this format (YYYY-MM-DD HH:MM)
|
|
40
|
+
5. Log all significant actions in the Output Log section:
|
|
41
|
+
|
|
42
|
+
```plaintext
|
|
43
|
+
[YYYY-MM-DD HH:MM] Started task
|
|
44
|
+
[YYYY-MM-DD HH:MM] Modified files: file1.js, file2.js
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
6. Mark subtasks as they're completed: `- [x] Completed subtask`
|
|
48
|
+
7. Use the Acceptance Criteria as your primary completion checklist
|
|
49
|
+
8. Ensure all sections from the task template are preserved
|
|
50
|
+
|
|
51
|
+
## Task Completion Process
|
|
52
|
+
|
|
53
|
+
When a task is complete:
|
|
54
|
+
|
|
55
|
+
1. Update status to "done"
|
|
56
|
+
2. Update all Acceptance Criteria with [x]
|
|
57
|
+
3. Add final Output Log entry
|
|
58
|
+
4. If GitHub issue is linked, update it:
|
|
59
|
+
```bash
|
|
60
|
+
gh issue comment {issue_number} --body "✅ Task has been completed."
|
|
61
|
+
gh issue edit {issue_number} --remove-label "in-progress" --add-label "completed"
|
|
62
|
+
```
|
|
63
|
+
5. Rename file from T... to TX... (e.g., `TX001_Task_Name.md`)
|
|
64
|
+
|
|
65
|
+
## GitHub Integration
|
|
66
|
+
|
|
67
|
+
### Creating Issues from Tasks
|
|
68
|
+
|
|
69
|
+
To create a GitHub issue from a general task:
|
|
70
|
+
|
|
71
|
+
```bash
|
|
72
|
+
/project:aiwf:issue_create {task_id}
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
### Linking Existing Issues
|
|
76
|
+
|
|
77
|
+
Add to task frontmatter:
|
|
78
|
+
|
|
79
|
+
```yaml
|
|
80
|
+
github_issue: #123
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
### Commit Integration
|
|
84
|
+
|
|
85
|
+
When committing changes for a task with a linked issue:
|
|
86
|
+
|
|
87
|
+
- Use `fixes #123` to auto-close the issue
|
|
88
|
+
- Use `relates to #123` to reference without closing
|
|
89
|
+
|
|
90
|
+
### Pull Request Creation
|
|
91
|
+
|
|
92
|
+
After task completion, create a PR:
|
|
93
|
+
|
|
94
|
+
```bash
|
|
95
|
+
/project:aiwf:pr_create {task_id}
|
|
96
|
+
```
|
package/claude-code/{simone/.simone → aiwf/en/.aiwf}/04_GENERAL_TASKS/T002_API_Rate_Limiting.md
RENAMED
|
@@ -8,11 +8,13 @@ last_updated: 2023-07-25T09:15:00Z
|
|
|
8
8
|
# Task: API Rate Limiting (EXAMPLE)
|
|
9
9
|
|
|
10
10
|
## Description
|
|
11
|
+
|
|
11
12
|
Implement rate limiting for the API to prevent abuse and ensure fair usage across all clients. This task involves adding middleware to track and limit requests based on client IP or API key.
|
|
12
13
|
|
|
13
|
-
**Note: This is an example general task to demonstrate how non-sprint-specific tasks might be structured in the
|
|
14
|
+
**Note: This is an example general task to demonstrate how non-sprint-specific tasks might be structured in the AIWF framework.**
|
|
14
15
|
|
|
15
16
|
## Goal / Objectives
|
|
17
|
+
|
|
16
18
|
- Protect API endpoints from abuse and excessive requests
|
|
17
19
|
- Implement configurable rate limits based on client authentication
|
|
18
20
|
- Track usage statistics for billing and monitoring
|
|
@@ -20,6 +22,7 @@ Implement rate limiting for the API to prevent abuse and ensure fair usage acros
|
|
|
20
22
|
- Ensure minimal performance impact on normal API operation
|
|
21
23
|
|
|
22
24
|
## Acceptance Criteria
|
|
25
|
+
|
|
23
26
|
- [ ] Rate limiting is applied to all public API endpoints
|
|
24
27
|
- [ ] Different rate limits are configurable based on client tier/authentication
|
|
25
28
|
- [ ] Response headers include rate limit information (limit, remaining, reset)
|
|
@@ -29,6 +32,7 @@ Implement rate limiting for the API to prevent abuse and ensure fair usage acros
|
|
|
29
32
|
- [ ] Usage statistics are collected for monitoring and analysis
|
|
30
33
|
|
|
31
34
|
## Subtasks
|
|
35
|
+
|
|
32
36
|
- [x] Research rate limiting strategies and best practices
|
|
33
37
|
- [x] Evaluate libraries (express-rate-limit, rate-limiter-flexible, etc.)
|
|
34
38
|
- [x] Design rate limit tiers for different client types
|
|
@@ -40,7 +44,8 @@ Implement rate limiting for the API to prevent abuse and ensure fair usage acros
|
|
|
40
44
|
- [ ] Document rate limiting behavior for API consumers
|
|
41
45
|
|
|
42
46
|
## Output Log
|
|
43
|
-
|
|
47
|
+
|
|
48
|
+
_(This section is populated as work progresses on the task)_
|
|
44
49
|
|
|
45
50
|
[2023-07-23 10:30:00] Started task
|
|
46
51
|
[2023-07-23 13:45:22] Completed research on rate limiting strategies
|
|
@@ -8,11 +8,13 @@ last_updated: 2023-07-22T16:45:00Z
|
|
|
8
8
|
# Task: Refactor Logging Module (EXAMPLE)
|
|
9
9
|
|
|
10
10
|
## Description
|
|
11
|
+
|
|
11
12
|
The current logging implementation is basic and needs to be enhanced to provide better visibility and monitoring capabilities. This task involves refactoring the logging module to add structured logging, log rotation, and improved error tracking.
|
|
12
13
|
|
|
13
|
-
**Note: This is an example general task to demonstrate how non-sprint-specific tasks might be structured in the
|
|
14
|
+
**Note: This is an example general task to demonstrate how non-sprint-specific tasks might be structured in the AIWF framework.**
|
|
14
15
|
|
|
15
16
|
## Goal / Objectives
|
|
17
|
+
|
|
16
18
|
- Implement structured JSON logging for better parsing by log analysis tools
|
|
17
19
|
- Add log rotation to prevent log files from growing too large
|
|
18
20
|
- Enable different log levels based on environment
|
|
@@ -20,6 +22,7 @@ The current logging implementation is basic and needs to be enhanced to provide
|
|
|
20
22
|
- Improve error logging with stack traces and contextual information
|
|
21
23
|
|
|
22
24
|
## Acceptance Criteria
|
|
25
|
+
|
|
23
26
|
- [x] Logs are output in structured JSON format
|
|
24
27
|
- [x] Log files are rotated based on size and/or date
|
|
25
28
|
- [x] Different log levels are used appropriately (debug, info, warn, error)
|
|
@@ -29,6 +32,7 @@ The current logging implementation is basic and needs to be enhanced to provide
|
|
|
29
32
|
- [x] Documentation is updated to reflect new logging capabilities
|
|
30
33
|
|
|
31
34
|
## Subtasks
|
|
35
|
+
|
|
32
36
|
- [x] Evaluate and select appropriate logging libraries and tools
|
|
33
37
|
- [x] Design the structured log format with required fields
|
|
34
38
|
- [x] Implement log rotation configuration
|
|
@@ -39,7 +43,8 @@ The current logging implementation is basic and needs to be enhanced to provide
|
|
|
39
43
|
- [x] Document the new logging system
|
|
40
44
|
|
|
41
45
|
## Output Log
|
|
42
|
-
|
|
46
|
+
|
|
47
|
+
_(This section is populated as work progresses on the task)_
|
|
43
48
|
|
|
44
49
|
[2023-07-15 10:30:00] Started task
|
|
45
50
|
[2023-07-15 11:15:22] Researched logging libraries: winston, pino, bunyan
|
|
@@ -12,9 +12,10 @@ Accepted
|
|
|
12
12
|
|
|
13
13
|
The backend system needs a database to store user accounts, projects, tasks, and other application data. The choice of database system will impact performance, scalability, development speed, and maintenance requirements.
|
|
14
14
|
|
|
15
|
-
**Note: This is an example Architecture Decision Record to demonstrate how ADRs might be structured in the
|
|
15
|
+
**Note: This is an example Architecture Decision Record to demonstrate how ADRs might be structured in the AIWF framework.**
|
|
16
16
|
|
|
17
17
|
We evaluated several options including:
|
|
18
|
+
|
|
18
19
|
- Relational databases (PostgreSQL, MySQL)
|
|
19
20
|
- Document databases (MongoDB, CouchDB)
|
|
20
21
|
- Key-value stores (Redis, DynamoDB)
|
|
@@ -40,6 +41,7 @@ The decision was based on the following factors:
|
|
|
40
41
|
6. **Ecosystem**: The robust Node.js ecosystem around MongoDB with libraries like Mongoose provides tools for validation, middleware, and other features that align with our development approach.
|
|
41
42
|
|
|
42
43
|
Some concerns were raised about:
|
|
44
|
+
|
|
43
45
|
- Lack of ACID transactions across multiple documents (though MongoDB does support multi-document transactions now)
|
|
44
46
|
- Potential for data duplication in document model
|
|
45
47
|
|
|
@@ -50,11 +52,13 @@ We determined these concerns were manageable for our use case and outweighed by
|
|
|
50
52
|
### PostgreSQL
|
|
51
53
|
|
|
52
54
|
Pros:
|
|
55
|
+
|
|
53
56
|
- Mature, proven technology with strong ACID compliance
|
|
54
57
|
- Excellent for complex relational data and joins
|
|
55
58
|
- Support for JSON data types provides some schema flexibility
|
|
56
59
|
|
|
57
60
|
Cons:
|
|
61
|
+
|
|
58
62
|
- Schema migrations could slow development velocity
|
|
59
63
|
- Object-relational mapping adds complexity
|
|
60
64
|
- Less natural fit for our document-oriented data model
|
|
@@ -62,11 +66,13 @@ Cons:
|
|
|
62
66
|
### DynamoDB
|
|
63
67
|
|
|
64
68
|
Pros:
|
|
69
|
+
|
|
65
70
|
- Fully managed service with automatic scaling
|
|
66
71
|
- Predictable performance with guaranteed low-latency
|
|
67
72
|
- Strong consistency options
|
|
68
73
|
|
|
69
74
|
Cons:
|
|
75
|
+
|
|
70
76
|
- Less flexible query capabilities
|
|
71
77
|
- AWS lock-in
|
|
72
78
|
- Potentially higher cost for our access patterns
|