moai-adk 0.8.1__py3-none-any.whl → 0.8.3__py3-none-any.whl
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.
Potentially problematic release.
This version of moai-adk might be problematic. Click here for more details.
- moai_adk/cli/commands/update.py +15 -4
- moai_adk/core/config/migration.py +1 -1
- moai_adk/core/issue_creator.py +7 -3
- moai_adk/core/tags/__init__.py +86 -0
- moai_adk/core/tags/ci_validator.py +433 -0
- moai_adk/core/tags/cli.py +283 -0
- moai_adk/core/tags/generator.py +109 -0
- moai_adk/core/tags/inserter.py +99 -0
- moai_adk/core/tags/mapper.py +126 -0
- moai_adk/core/tags/parser.py +76 -0
- moai_adk/core/tags/pre_commit_validator.py +355 -0
- moai_adk/core/tags/reporter.py +957 -0
- moai_adk/core/tags/tags.py +149 -0
- moai_adk/core/tags/validator.py +897 -0
- moai_adk/templates/.claude/agents/alfred/cc-manager.md +25 -2
- moai_adk/templates/.claude/agents/alfred/debug-helper.md +24 -12
- moai_adk/templates/.claude/agents/alfred/doc-syncer.md +19 -12
- moai_adk/templates/.claude/agents/alfred/git-manager.md +20 -12
- moai_adk/templates/.claude/agents/alfred/implementation-planner.md +19 -12
- moai_adk/templates/.claude/agents/alfred/project-manager.md +29 -2
- moai_adk/templates/.claude/agents/alfred/quality-gate.md +25 -2
- moai_adk/templates/.claude/agents/alfred/skill-factory.md +30 -2
- moai_adk/templates/.claude/agents/alfred/spec-builder.md +26 -11
- moai_adk/templates/.claude/agents/alfred/tag-agent.md +30 -8
- moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +27 -12
- moai_adk/templates/.claude/agents/alfred/trust-checker.md +25 -2
- moai_adk/templates/.claude/commands/alfred/0-project.md +5 -0
- moai_adk/templates/.claude/commands/alfred/1-plan.md +82 -19
- moai_adk/templates/.claude/commands/alfred/2-run.md +72 -15
- moai_adk/templates/.claude/commands/alfred/3-sync.md +74 -14
- moai_adk/templates/.claude/hooks/alfred/.moai/cache/version-check.json +9 -0
- moai_adk/templates/.claude/hooks/alfred/README.md +258 -145
- moai_adk/templates/.claude/hooks/alfred/TROUBLESHOOTING.md +471 -0
- moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +92 -57
- moai_adk/templates/.claude/hooks/alfred/core/version_cache.py +198 -0
- moai_adk/templates/.claude/hooks/alfred/notification__handle_events.py +102 -0
- moai_adk/templates/.claude/hooks/alfred/post_tool__log_changes.py +102 -0
- moai_adk/templates/.claude/hooks/alfred/pre_tool__auto_checkpoint.py +108 -0
- moai_adk/templates/.claude/hooks/alfred/session_end__cleanup.py +102 -0
- moai_adk/templates/.claude/hooks/alfred/session_start__show_project_info.py +102 -0
- moai_adk/templates/.claude/hooks/alfred/{core → shared/core}/project.py +286 -19
- moai_adk/templates/.claude/hooks/alfred/shared/core/version_cache.py +198 -0
- moai_adk/templates/.claude/hooks/alfred/{handlers → shared/handlers}/session.py +21 -7
- moai_adk/templates/.claude/hooks/alfred/stop__handle_interrupt.py +102 -0
- moai_adk/templates/.claude/hooks/alfred/subagent_stop__handle_subagent_end.py +102 -0
- moai_adk/templates/.claude/hooks/alfred/user_prompt__jit_load_docs.py +120 -0
- moai_adk/templates/.claude/settings.json +5 -5
- moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +9 -6
- moai_adk/templates/.claude/skills/moai-spec-authoring/README.md +56 -56
- moai_adk/templates/.claude/skills/moai-spec-authoring/SKILL.md +101 -100
- moai_adk/templates/.claude/skills/moai-spec-authoring/examples/validate-spec.sh +3 -3
- moai_adk/templates/.claude/skills/moai-spec-authoring/examples.md +219 -219
- moai_adk/templates/.claude/skills/moai-spec-authoring/reference.md +287 -287
- moai_adk/templates/.github/ISSUE_TEMPLATE/spec.yml +9 -11
- moai_adk/templates/.github/PULL_REQUEST_TEMPLATE.md +9 -21
- moai_adk/templates/.github/workflows/moai-release-create.yml +100 -0
- moai_adk/templates/.github/workflows/moai-release-pipeline.yml +182 -0
- moai_adk/templates/.github/workflows/release.yml +49 -0
- moai_adk/templates/.github/workflows/tag-report.yml +261 -0
- moai_adk/templates/.github/workflows/tag-validation.yml +176 -0
- moai_adk/templates/.moai/config.json +6 -1
- moai_adk/templates/.moai/hooks/install.sh +79 -0
- moai_adk/templates/.moai/hooks/pre-commit.sh +66 -0
- moai_adk/templates/CLAUDE.md +39 -40
- moai_adk/templates/src/moai_adk/core/__init__.py +5 -0
- moai_adk/templates/src/moai_adk/core/tags/__init__.py +86 -0
- moai_adk/templates/src/moai_adk/core/tags/ci_validator.py +433 -0
- moai_adk/templates/src/moai_adk/core/tags/cli.py +283 -0
- moai_adk/templates/src/moai_adk/core/tags/pre_commit_validator.py +355 -0
- moai_adk/templates/src/moai_adk/core/tags/reporter.py +957 -0
- moai_adk/templates/src/moai_adk/core/tags/validator.py +897 -0
- {moai_adk-0.8.1.dist-info → moai_adk-0.8.3.dist-info}/METADATA +240 -14
- {moai_adk-0.8.1.dist-info → moai_adk-0.8.3.dist-info}/RECORD +85 -50
- moai_adk/templates/.claude/hooks/alfred/HOOK_SCHEMA_VALIDATION.md +0 -313
- moai_adk/templates/.moai/memory/config-schema.md +0 -444
- /moai_adk/templates/.claude/hooks/alfred/{core → shared/core}/__init__.py +0 -0
- /moai_adk/templates/.claude/hooks/alfred/{core → shared/core}/checkpoint.py +0 -0
- /moai_adk/templates/.claude/hooks/alfred/{core → shared/core}/context.py +0 -0
- /moai_adk/templates/.claude/hooks/alfred/{core → shared/core}/tags.py +0 -0
- /moai_adk/templates/.claude/hooks/alfred/{handlers → shared/handlers}/__init__.py +0 -0
- /moai_adk/templates/.claude/hooks/alfred/{handlers → shared/handlers}/notification.py +0 -0
- /moai_adk/templates/.claude/hooks/alfred/{handlers → shared/handlers}/tool.py +0 -0
- /moai_adk/templates/.claude/hooks/alfred/{handlers → shared/handlers}/user.py +0 -0
- /moai_adk/templates/.moai/memory/{issue-label-mapping.md → ISSUE-LABEL-MAPPING.md} +0 -0
- {moai_adk-0.8.1.dist-info → moai_adk-0.8.3.dist-info}/WHEEL +0 -0
- {moai_adk-0.8.1.dist-info → moai_adk-0.8.3.dist-info}/entry_points.txt +0 -0
- {moai_adk-0.8.1.dist-info → moai_adk-0.8.3.dist-info}/licenses/LICENSE +0 -0
|
@@ -1,444 +0,0 @@
|
|
|
1
|
-
# MoAI-ADK config.json Schema Documentation
|
|
2
|
-
|
|
3
|
-
> **Purpose**: This document defines the official schema structure for `.moai/config.json` file, which serves as the single source of truth for all MoAI-ADK project configuration.
|
|
4
|
-
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## 📋 Schema Overview
|
|
8
|
-
|
|
9
|
-
The `.moai/config.json` file contains all project-level configuration for MoAI-ADK, including:
|
|
10
|
-
- Project metadata and settings
|
|
11
|
-
- User preferences (language, nickname)
|
|
12
|
-
- Git workflow strategies
|
|
13
|
-
- TAG system configuration
|
|
14
|
-
- Constitution principles
|
|
15
|
-
|
|
16
|
-
---
|
|
17
|
-
|
|
18
|
-
## 🏗️ Schema Structure
|
|
19
|
-
|
|
20
|
-
### Top-Level Sections
|
|
21
|
-
|
|
22
|
-
```json
|
|
23
|
-
{
|
|
24
|
-
"_meta": { /* Metadata about the config file itself */ },
|
|
25
|
-
"moai": { /* MoAI-ADK version info */ },
|
|
26
|
-
"project": { /* Project-specific settings */ },
|
|
27
|
-
"user": { /* User preferences */ },
|
|
28
|
-
"constitution": { /* Development principles */ },
|
|
29
|
-
"git_strategy": { /* Git workflow configuration */ },
|
|
30
|
-
"pipeline": { /* Command pipeline settings */ },
|
|
31
|
-
"tags": { /* TAG system configuration */ }
|
|
32
|
-
}
|
|
33
|
-
```
|
|
34
|
-
|
|
35
|
-
---
|
|
36
|
-
|
|
37
|
-
## 📖 Section Definitions
|
|
38
|
-
|
|
39
|
-
### 1. `_meta` Section
|
|
40
|
-
|
|
41
|
-
**Purpose**: Internal metadata for config structure tracking and TAG traceability.
|
|
42
|
-
|
|
43
|
-
**Schema**:
|
|
44
|
-
```json
|
|
45
|
-
{
|
|
46
|
-
"_meta": {
|
|
47
|
-
"@CODE:CONFIG-STRUCTURE-001": "@DOC:JSON-CONFIG-001",
|
|
48
|
-
"@SPEC:PROJECT-CONFIG-001": "@SPEC:MOAI-CONFIG-001"
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
```
|
|
52
|
-
|
|
53
|
-
**Fields**:
|
|
54
|
-
- `@CODE:*`: TAG references to code implementation
|
|
55
|
-
- `@SPEC:*`: TAG references to specification documents
|
|
56
|
-
|
|
57
|
-
---
|
|
58
|
-
|
|
59
|
-
### 2. `moai` Section
|
|
60
|
-
|
|
61
|
-
**Purpose**: Track MoAI-ADK package version for compatibility checks.
|
|
62
|
-
|
|
63
|
-
**Schema**:
|
|
64
|
-
```json
|
|
65
|
-
{
|
|
66
|
-
"moai": {
|
|
67
|
-
"version": "0.4.6"
|
|
68
|
-
}
|
|
69
|
-
}
|
|
70
|
-
```
|
|
71
|
-
|
|
72
|
-
**Fields**:
|
|
73
|
-
- `version` (string, required): MoAI-ADK version in SemVer format (e.g., "0.4.6")
|
|
74
|
-
|
|
75
|
-
---
|
|
76
|
-
|
|
77
|
-
### 3. `project` Section
|
|
78
|
-
|
|
79
|
-
**Purpose**: Core project settings including name, mode, language preferences, and optimization status.
|
|
80
|
-
|
|
81
|
-
**Schema**:
|
|
82
|
-
```json
|
|
83
|
-
{
|
|
84
|
-
"project": {
|
|
85
|
-
"name": "MoAI-ADK",
|
|
86
|
-
"description": "MoAI-Agentic Development Kit",
|
|
87
|
-
"mode": "personal",
|
|
88
|
-
"locale": "ko",
|
|
89
|
-
"conversation_language": "ko",
|
|
90
|
-
"conversation_language_name": "한국어",
|
|
91
|
-
"language": "python",
|
|
92
|
-
"moai_adk_version": "0.4.6",
|
|
93
|
-
"initialized": true,
|
|
94
|
-
"optimized": true,
|
|
95
|
-
"optimized_at": "2025-10-22T12:45:00Z",
|
|
96
|
-
"created_at": "2025-10-21 23:59:19"
|
|
97
|
-
}
|
|
98
|
-
}
|
|
99
|
-
```
|
|
100
|
-
|
|
101
|
-
**Fields**:
|
|
102
|
-
- `name` (string, required): Project name
|
|
103
|
-
- `description` (string, optional): Brief project description
|
|
104
|
-
- `mode` (enum, required): Project mode — `"personal"` | `"team"`
|
|
105
|
-
- `locale` (string, required): System locale code (e.g., `"ko"`, `"en"`, `"ja"`)
|
|
106
|
-
- `conversation_language` (string, required): Language code for all Alfred dialogs and documentation (e.g., `"ko"`, `"en"`, `"ja"`, `"zh"`)
|
|
107
|
-
- `conversation_language_name` (string, required): Display name of conversation language (e.g., `"한국어"`, `"English"`)
|
|
108
|
-
- `language` (string, required): Primary codebase language (e.g., `"python"`, `"typescript"`)
|
|
109
|
-
- `moai_adk_version` (string, required): MoAI-ADK version this project was initialized with
|
|
110
|
-
- `initialized` (boolean, required): Whether project initialization completed
|
|
111
|
-
- `optimized` (boolean, required): Whether template optimization completed
|
|
112
|
-
- `optimized_at` (string, optional): ISO 8601 timestamp of optimization completion
|
|
113
|
-
- `created_at` (string, required): Project creation timestamp
|
|
114
|
-
|
|
115
|
-
**Notes**:
|
|
116
|
-
- `conversation_language` is set during `/alfred:0-project` STEP 0.1
|
|
117
|
-
- `language` is auto-detected during `/alfred:0-project` STEP 1 or can be manually specified
|
|
118
|
-
|
|
119
|
-
---
|
|
120
|
-
|
|
121
|
-
### 4. `user` Section (NEW in v0.4.6)
|
|
122
|
-
|
|
123
|
-
**Purpose**: User-specific preferences for personalized Alfred experience.
|
|
124
|
-
|
|
125
|
-
**Schema**:
|
|
126
|
-
```json
|
|
127
|
-
{
|
|
128
|
-
"user": {
|
|
129
|
-
"nickname": "GOOS오라버니"
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
```
|
|
133
|
-
|
|
134
|
-
**Fields**:
|
|
135
|
-
- `nickname` (string, required): User's chosen nickname for personalized communication
|
|
136
|
-
- Length: 1-50 characters
|
|
137
|
-
- Allows emoji, spaces, and special characters
|
|
138
|
-
- Set during `/alfred:0-project` STEP 0.2
|
|
139
|
-
- Used by all sub-agents to address the user (e.g., "안녕하세요, GOOS오라버니님!")
|
|
140
|
-
- Displayed in `CLAUDE.md` under "## 프로젝트 정보 | Project Information"
|
|
141
|
-
|
|
142
|
-
**Usage**:
|
|
143
|
-
- Alfred and all sub-agents receive `user_nickname` as a context parameter
|
|
144
|
-
- Language-specific honorifics are applied automatically (e.g., "님" in Korean)
|
|
145
|
-
- Enhances user experience by personalizing all interactions
|
|
146
|
-
|
|
147
|
-
---
|
|
148
|
-
|
|
149
|
-
### 5. `constitution` Section
|
|
150
|
-
|
|
151
|
-
**Purpose**: Define development principles and quality gates enforced by MoAI-ADK.
|
|
152
|
-
|
|
153
|
-
**Schema**:
|
|
154
|
-
```json
|
|
155
|
-
{
|
|
156
|
-
"constitution": {
|
|
157
|
-
"enforce_tdd": true,
|
|
158
|
-
"require_tags": true,
|
|
159
|
-
"test_coverage_target": 85,
|
|
160
|
-
"simplicity_threshold": 5,
|
|
161
|
-
"principles": {
|
|
162
|
-
"simplicity": {
|
|
163
|
-
"max_projects": 5,
|
|
164
|
-
"notes": "Default recommendation. Adjust in .moai/config.json or via SPEC/ADR with documented rationale based on project size."
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
}
|
|
168
|
-
}
|
|
169
|
-
```
|
|
170
|
-
|
|
171
|
-
**Fields**:
|
|
172
|
-
- `enforce_tdd` (boolean, required): Whether TDD workflow is mandatory
|
|
173
|
-
- `require_tags` (boolean, required): Whether @TAG annotations are required
|
|
174
|
-
- `test_coverage_target` (integer, required): Minimum test coverage percentage (default: 85)
|
|
175
|
-
- `simplicity_threshold` (integer, required): Max number of concurrent projects (default: 5)
|
|
176
|
-
- `principles` (object, optional): Additional principle definitions
|
|
177
|
-
|
|
178
|
-
---
|
|
179
|
-
|
|
180
|
-
### 6. `git_strategy` Section
|
|
181
|
-
|
|
182
|
-
**Purpose**: Configure Git workflow automation based on project mode.
|
|
183
|
-
|
|
184
|
-
**Schema**:
|
|
185
|
-
```json
|
|
186
|
-
{
|
|
187
|
-
"git_strategy": {
|
|
188
|
-
"personal": {
|
|
189
|
-
"auto_checkpoint": "event-driven",
|
|
190
|
-
"checkpoint_events": ["delete", "refactor", "merge", "script", "critical-file"],
|
|
191
|
-
"checkpoint_type": "local-branch",
|
|
192
|
-
"max_checkpoints": 10,
|
|
193
|
-
"cleanup_days": 7,
|
|
194
|
-
"push_to_remote": false,
|
|
195
|
-
"auto_commit": true,
|
|
196
|
-
"branch_prefix": "feature/",
|
|
197
|
-
"develop_branch": "develop",
|
|
198
|
-
"main_branch": "main"
|
|
199
|
-
},
|
|
200
|
-
"team": {
|
|
201
|
-
"use_gitflow": true,
|
|
202
|
-
"auto_pr": true,
|
|
203
|
-
"draft_pr": true,
|
|
204
|
-
"feature_prefix": "feature/SPEC-",
|
|
205
|
-
"develop_branch": "develop",
|
|
206
|
-
"main_branch": "main"
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
}
|
|
210
|
-
```
|
|
211
|
-
|
|
212
|
-
**Personal Mode Fields**:
|
|
213
|
-
- `auto_checkpoint` (enum): `"event-driven"` | `"manual"` | `"disabled"`
|
|
214
|
-
- `checkpoint_events` (array): List of events triggering auto-checkpoint
|
|
215
|
-
- `checkpoint_type` (enum): `"local-branch"` | `"git-stash"` | `"backup-dir"`
|
|
216
|
-
- `max_checkpoints` (integer): Max number of checkpoints to retain
|
|
217
|
-
- `cleanup_days` (integer): Days before old checkpoints are removed
|
|
218
|
-
- `push_to_remote` (boolean): Whether to push checkpoints to remote
|
|
219
|
-
- `auto_commit` (boolean): Auto-commit changes after TDD cycles
|
|
220
|
-
- `branch_prefix` (string): Prefix for feature branches
|
|
221
|
-
- `develop_branch` (string): Name of develop branch
|
|
222
|
-
- `main_branch` (string): Name of main/production branch
|
|
223
|
-
|
|
224
|
-
**Team Mode Fields**:
|
|
225
|
-
- `use_gitflow` (boolean): Enable GitFlow branching strategy
|
|
226
|
-
- `auto_pr` (boolean): Auto-create PR after feature completion
|
|
227
|
-
- `draft_pr` (boolean): Create PRs in draft mode by default
|
|
228
|
-
- `feature_prefix` (string): Prefix for feature branches (includes SPEC ID)
|
|
229
|
-
- `develop_branch` (string): Name of develop branch
|
|
230
|
-
- `main_branch` (string): Name of main/production branch
|
|
231
|
-
|
|
232
|
-
---
|
|
233
|
-
|
|
234
|
-
### 7. `pipeline` Section
|
|
235
|
-
|
|
236
|
-
**Purpose**: Define available Alfred commands and track current workflow stage.
|
|
237
|
-
|
|
238
|
-
**Schema**:
|
|
239
|
-
```json
|
|
240
|
-
{
|
|
241
|
-
"pipeline": {
|
|
242
|
-
"available_commands": [
|
|
243
|
-
"/alfred:0-project",
|
|
244
|
-
"/alfred:1-plan",
|
|
245
|
-
"/alfred:2-run",
|
|
246
|
-
"/alfred:3-sync"
|
|
247
|
-
],
|
|
248
|
-
"current_stage": "initialized"
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
```
|
|
252
|
-
|
|
253
|
-
**Fields**:
|
|
254
|
-
- `available_commands` (array, required): List of available Alfred commands
|
|
255
|
-
- `current_stage` (string, required): Current workflow stage (e.g., `"initialized"`, `"planning"`, `"building"`, `"syncing"`)
|
|
256
|
-
|
|
257
|
-
---
|
|
258
|
-
|
|
259
|
-
### 8. `tags` Section
|
|
260
|
-
|
|
261
|
-
**Purpose**: Configure TAG system behavior and storage policy.
|
|
262
|
-
|
|
263
|
-
**Schema**:
|
|
264
|
-
```json
|
|
265
|
-
{
|
|
266
|
-
"tags": {
|
|
267
|
-
"storage_type": "code_scan",
|
|
268
|
-
"auto_sync": true,
|
|
269
|
-
"categories": ["REQ", "DESIGN", "TASK", "TEST", "FEATURE", "API", "UI", "DATA"],
|
|
270
|
-
"code_scan_policy": {
|
|
271
|
-
"no_intermediate_cache": true,
|
|
272
|
-
"realtime_validation": true,
|
|
273
|
-
"scan_tools": ["rg", "grep"],
|
|
274
|
-
"scan_command": "rg '@TAG' -n",
|
|
275
|
-
"philosophy": "The source of truth for TAGs lives in the code itself"
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
```
|
|
280
|
-
|
|
281
|
-
**Fields**:
|
|
282
|
-
- `storage_type` (enum, required): `"code_scan"` | `"registry_file"`
|
|
283
|
-
- `auto_sync` (boolean, required): Auto-sync TAGs during `/alfred:3-sync`
|
|
284
|
-
- `categories` (array, required): List of valid TAG categories
|
|
285
|
-
- `code_scan_policy` (object, required): Configuration for code-first TAG scanning
|
|
286
|
-
- `no_intermediate_cache` (boolean): Never use intermediate TAG cache files
|
|
287
|
-
- `realtime_validation` (boolean): Validate TAGs on every operation
|
|
288
|
-
- `scan_tools` (array): Tools used for TAG scanning (e.g., `["rg", "grep"]`)
|
|
289
|
-
- `scan_command` (string): Command to scan for TAGs
|
|
290
|
-
- `philosophy` (string): Description of TAG philosophy
|
|
291
|
-
|
|
292
|
-
---
|
|
293
|
-
|
|
294
|
-
## 🔄 Schema Evolution
|
|
295
|
-
|
|
296
|
-
### Version History
|
|
297
|
-
|
|
298
|
-
| Version | Date | Changes |
|
|
299
|
-
| ------- | ---------- | ------------------------------------------------------ |
|
|
300
|
-
| v0.4.6 | 2025-10-23 | Added `user` section with `nickname` field |
|
|
301
|
-
| v0.4.2 | 2025-10-22 | Added `conversation_language` and `language_name` fields |
|
|
302
|
-
| v0.4.0 | 2025-10-20 | Initial schema documentation |
|
|
303
|
-
|
|
304
|
-
### Migration Guide
|
|
305
|
-
|
|
306
|
-
**From v0.4.5 → v0.4.6**:
|
|
307
|
-
- Add `user` section with `nickname` field
|
|
308
|
-
- No breaking changes; existing configs remain compatible
|
|
309
|
-
|
|
310
|
-
**Example Migration**:
|
|
311
|
-
```json
|
|
312
|
-
// Before (v0.4.5)
|
|
313
|
-
{
|
|
314
|
-
"project": {
|
|
315
|
-
"conversation_language": "ko",
|
|
316
|
-
"conversation_language_name": "한국어"
|
|
317
|
-
}
|
|
318
|
-
}
|
|
319
|
-
|
|
320
|
-
// After (v0.4.6)
|
|
321
|
-
{
|
|
322
|
-
"project": {
|
|
323
|
-
"conversation_language": "ko",
|
|
324
|
-
"conversation_language_name": "한국어"
|
|
325
|
-
},
|
|
326
|
-
"user": {
|
|
327
|
-
"nickname": "GOOS오라버니"
|
|
328
|
-
}
|
|
329
|
-
}
|
|
330
|
-
```
|
|
331
|
-
|
|
332
|
-
---
|
|
333
|
-
|
|
334
|
-
## 📚 Related Documentation
|
|
335
|
-
|
|
336
|
-
- **Template Processing**: `/src/moai_adk/cli/template_processor.py`
|
|
337
|
-
- **Project Initialization**: `/.claude/commands/alfred/0-project.md`
|
|
338
|
-
- **project-manager Agent**: `/.claude/agents/alfred/project-manager.md`
|
|
339
|
-
- **CLAUDE.md Template**: `/src/moai_adk/templates/CLAUDE.md`
|
|
340
|
-
|
|
341
|
-
---
|
|
342
|
-
|
|
343
|
-
## ✅ Validation Rules
|
|
344
|
-
|
|
345
|
-
### Required Fields per Section
|
|
346
|
-
|
|
347
|
-
**Minimum Valid Config**:
|
|
348
|
-
```json
|
|
349
|
-
{
|
|
350
|
-
"moai": {
|
|
351
|
-
"version": "0.4.6"
|
|
352
|
-
},
|
|
353
|
-
"project": {
|
|
354
|
-
"name": "MyProject",
|
|
355
|
-
"mode": "personal",
|
|
356
|
-
"locale": "en",
|
|
357
|
-
"conversation_language": "en",
|
|
358
|
-
"conversation_language_name": "English",
|
|
359
|
-
"language": "python",
|
|
360
|
-
"initialized": true
|
|
361
|
-
},
|
|
362
|
-
"user": {
|
|
363
|
-
"nickname": "Developer"
|
|
364
|
-
},
|
|
365
|
-
"constitution": {
|
|
366
|
-
"enforce_tdd": true,
|
|
367
|
-
"require_tags": true,
|
|
368
|
-
"test_coverage_target": 85
|
|
369
|
-
},
|
|
370
|
-
"tags": {
|
|
371
|
-
"storage_type": "code_scan",
|
|
372
|
-
"auto_sync": true
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
```
|
|
376
|
-
|
|
377
|
-
### Validation Checklist
|
|
378
|
-
|
|
379
|
-
- [ ] `moai.version` matches installed package version
|
|
380
|
-
- [ ] `project.mode` is either `"personal"` or `"team"`
|
|
381
|
-
- [ ] `project.conversation_language` is a valid ISO 639-1 code
|
|
382
|
-
- [ ] `user.nickname` length is between 1-50 characters
|
|
383
|
-
- [ ] `constitution.test_coverage_target` is between 0-100
|
|
384
|
-
- [ ] `tags.storage_type` is valid enum value
|
|
385
|
-
- [ ] All required fields are present
|
|
386
|
-
|
|
387
|
-
---
|
|
388
|
-
|
|
389
|
-
## 🛠️ Usage Examples
|
|
390
|
-
|
|
391
|
-
### Reading Config in Python
|
|
392
|
-
|
|
393
|
-
```python
|
|
394
|
-
import json
|
|
395
|
-
from pathlib import Path
|
|
396
|
-
|
|
397
|
-
def read_config():
|
|
398
|
-
config_path = Path(".moai/config.json")
|
|
399
|
-
with open(config_path, "r", encoding="utf-8") as f:
|
|
400
|
-
return json.load(f)
|
|
401
|
-
|
|
402
|
-
config = read_config()
|
|
403
|
-
user_nickname = config.get("user", {}).get("nickname", "Developer")
|
|
404
|
-
conversation_language = config["project"]["conversation_language"]
|
|
405
|
-
```
|
|
406
|
-
|
|
407
|
-
### Updating User Nickname
|
|
408
|
-
|
|
409
|
-
```python
|
|
410
|
-
import json
|
|
411
|
-
from pathlib import Path
|
|
412
|
-
|
|
413
|
-
def update_user_nickname(new_nickname: str):
|
|
414
|
-
config_path = Path(".moai/config.json")
|
|
415
|
-
|
|
416
|
-
# Read existing config
|
|
417
|
-
with open(config_path, "r", encoding="utf-8") as f:
|
|
418
|
-
config = json.load(f)
|
|
419
|
-
|
|
420
|
-
# Update user section
|
|
421
|
-
if "user" not in config:
|
|
422
|
-
config["user"] = {}
|
|
423
|
-
config["user"]["nickname"] = new_nickname
|
|
424
|
-
|
|
425
|
-
# Write back
|
|
426
|
-
with open(config_path, "w", encoding="utf-8") as f:
|
|
427
|
-
json.dump(config, f, indent=2, ensure_ascii=False)
|
|
428
|
-
```
|
|
429
|
-
|
|
430
|
-
---
|
|
431
|
-
|
|
432
|
-
## 📝 Notes
|
|
433
|
-
|
|
434
|
-
- **SSOT**: This config file is the single source of truth for all project settings
|
|
435
|
-
- **No Duplication**: Never duplicate config values in code or other files
|
|
436
|
-
- **Encoding**: Always use UTF-8 encoding to support international characters in nicknames and language names
|
|
437
|
-
- **Validation**: Always validate config structure before reading values
|
|
438
|
-
- **Migration**: When adding new fields, provide sensible defaults for backwards compatibility
|
|
439
|
-
|
|
440
|
-
---
|
|
441
|
-
|
|
442
|
-
**Last Updated**: 2025-10-23
|
|
443
|
-
**Version**: v0.4.6
|
|
444
|
-
**Maintainer**: cc-manager
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|