moai-adk 0.3.12__py3-none-any.whl → 0.4.0__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/__init__.py +8 -1
- moai_adk/__main__.py +1 -1
- moai_adk/cli/commands/__init__.py +1 -1
- moai_adk/cli/commands/doctor.py +2 -2
- moai_adk/cli/commands/status.py +1 -1
- moai_adk/cli/commands/update.py +136 -90
- moai_adk/cli/prompts/init_prompts.py +1 -1
- moai_adk/core/__init__.py +1 -1
- moai_adk/core/git/branch.py +1 -1
- moai_adk/core/git/manager.py +1 -1
- moai_adk/core/project/detector.py +14 -2
- moai_adk/core/quality/__init__.py +1 -1
- moai_adk/core/quality/trust_checker.py +1 -1
- moai_adk/core/quality/validators/__init__.py +1 -1
- moai_adk/core/quality/validators/base_validator.py +1 -1
- moai_adk/core/template/__init__.py +1 -1
- moai_adk/core/template/backup.py +2 -1
- moai_adk/core/template/config.py +24 -0
- moai_adk/core/template/languages.py +1 -1
- moai_adk/core/template/merger.py +58 -1
- moai_adk/core/template/processor.py +41 -12
- moai_adk/templates/.claude/agents/alfred/cc-manager.md +558 -3
- moai_adk/templates/.claude/commands/alfred/0-project.md +480 -12
- moai_adk/templates/.claude/commands/alfred/1-plan.md +563 -0
- moai_adk/templates/.claude/commands/alfred/1-spec.md +15 -516
- moai_adk/templates/.claude/commands/alfred/2-build.md +15 -417
- moai_adk/templates/.claude/commands/alfred/2-run.md +460 -0
- moai_adk/templates/.claude/hooks/alfred/handlers/session.py +12 -0
- moai_adk/templates/.claude/skills/moai-claude-code/SKILL.md +67 -0
- moai_adk/templates/.claude/skills/moai-claude-code/examples.md +513 -0
- moai_adk/templates/.claude/skills/moai-claude-code/reference.md +419 -0
- moai_adk/templates/.claude/skills/moai-claude-code/templates/agent-full.md +332 -0
- moai_adk/templates/.claude/skills/moai-claude-code/templates/command-full.md +384 -0
- moai_adk/templates/.claude/skills/moai-claude-code/templates/plugin-full.json +349 -0
- moai_adk/templates/.claude/skills/moai-claude-code/templates/settings-full.json +552 -0
- moai_adk/templates/.claude/skills/moai-claude-code/templates/skill-full.md +499 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +68 -0
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +64 -0
- moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +67 -0
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +69 -0
- moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +69 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +68 -0
- moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +67 -0
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +62 -0
- moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +74 -0
- moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +66 -0
- moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +66 -0
- moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +68 -0
- moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +59 -0
- moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +76 -0
- moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +61 -0
- moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +63 -0
- moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +64 -0
- moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +61 -0
- moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +54 -0
- moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +46 -0
- moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +68 -0
- moai_adk/templates/.claude/skills/moai-lang-clojure/SKILL.md +68 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +69 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +67 -0
- moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +66 -0
- moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +66 -0
- moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +67 -0
- moai_adk/templates/.claude/skills/moai-lang-haskell/SKILL.md +67 -0
- moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +66 -0
- moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +64 -0
- moai_adk/templates/.claude/skills/moai-lang-julia/SKILL.md +66 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +67 -0
- moai_adk/templates/.claude/skills/moai-lang-lua/SKILL.md +65 -0
- moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +65 -0
- moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +64 -0
- moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +66 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +66 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +68 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +68 -0
- moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +67 -0
- moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +68 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +67 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +64 -0
- moai_adk/templates/.claude/skills/scripts/standardize_skills.py +166 -0
- moai_adk/templates/.claude/skills/scripts/verify_standardization.sh +43 -0
- moai_adk/templates/CLAUDE.md +153 -0
- moai_adk/templates/__init__.py +1 -1
- moai_adk/utils/__init__.py +1 -1
- moai_adk/utils/banner.py +1 -1
- moai_adk/utils/logger.py +1 -1
- {moai_adk-0.3.12.dist-info → moai_adk-0.4.0.dist-info}/METADATA +244 -3
- moai_adk-0.4.0.dist-info/RECORD +145 -0
- moai_adk-0.3.12.dist-info/RECORD +0 -90
- {moai_adk-0.3.12.dist-info → moai_adk-0.4.0.dist-info}/WHEEL +0 -0
- {moai_adk-0.3.12.dist-info → moai_adk-0.4.0.dist-info}/entry_points.txt +0 -0
- {moai_adk-0.3.12.dist-info → moai_adk-0.4.0.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: moai-essentials-review
|
|
3
|
+
description: Automated code review with SOLID principles, code smells, and language-specific
|
|
4
|
+
best practices
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
- Write
|
|
9
|
+
- Edit
|
|
10
|
+
- TodoWrite
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Alfred Code Reviewer
|
|
14
|
+
|
|
15
|
+
## What it does
|
|
16
|
+
|
|
17
|
+
Automated code review with language-specific best practices, SOLID principles verification, and code smell detection.
|
|
18
|
+
|
|
19
|
+
## When to use
|
|
20
|
+
|
|
21
|
+
- "코드 리뷰해줘", "이 코드 개선점은?", "코드 품질 확인"
|
|
22
|
+
- Optionally invoked after `/alfred:3-sync`
|
|
23
|
+
- Before merging PR
|
|
24
|
+
|
|
25
|
+
## How it works
|
|
26
|
+
|
|
27
|
+
**Code Constraints Check**:
|
|
28
|
+
- File ≤300 LOC
|
|
29
|
+
- Function ≤50 LOC
|
|
30
|
+
- Parameters ≤5
|
|
31
|
+
- Cyclomatic complexity ≤10
|
|
32
|
+
|
|
33
|
+
**SOLID Principles**:
|
|
34
|
+
- Single Responsibility
|
|
35
|
+
- Open/Closed
|
|
36
|
+
- Liskov Substitution
|
|
37
|
+
- Interface Segregation
|
|
38
|
+
- Dependency Inversion
|
|
39
|
+
|
|
40
|
+
**Code Smell Detection**:
|
|
41
|
+
- Long Method
|
|
42
|
+
- Large Class
|
|
43
|
+
- Duplicate Code
|
|
44
|
+
- Dead Code
|
|
45
|
+
- Magic Numbers
|
|
46
|
+
|
|
47
|
+
**Language-specific Best Practices**:
|
|
48
|
+
- Python: List comprehension, type hints, PEP 8
|
|
49
|
+
- TypeScript: Strict typing, async/await, error handling
|
|
50
|
+
- Java: Streams API, Optional, Design patterns
|
|
51
|
+
|
|
52
|
+
**Review Report**:
|
|
53
|
+
```markdown
|
|
54
|
+
## Code Review Report
|
|
55
|
+
|
|
56
|
+
### 🔴 Critical Issues (3)
|
|
57
|
+
1. **src/auth/service.py:45** - Function too long (85 > 50 LOC)
|
|
58
|
+
2. **src/api/handler.ts:120** - Missing error handling
|
|
59
|
+
3. **src/db/repository.java:200** - Magic number
|
|
60
|
+
|
|
61
|
+
### ⚠️ Warnings (5)
|
|
62
|
+
1. **src/utils/helper.py:30** - Unused import
|
|
63
|
+
|
|
64
|
+
### ✅ Good Practices Found
|
|
65
|
+
- Test coverage: 92%
|
|
66
|
+
- Consistent naming
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Examples
|
|
70
|
+
|
|
71
|
+
User: "이 코드 리뷰해줘"
|
|
72
|
+
Claude: (analyzes code, detects issues, provides improvement suggestions)
|
|
73
|
+
## Works well with
|
|
74
|
+
|
|
75
|
+
- moai-foundation-specs
|
|
76
|
+
- moai-essentials-refactor
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: moai-foundation-ears
|
|
3
|
+
description: EARS requirement authoring guide (Ubiquitous/Event/State/Optional/Constraints)
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Bash
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- TodoWrite
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Alfred EARS Authoring Guide
|
|
13
|
+
|
|
14
|
+
## What it does
|
|
15
|
+
|
|
16
|
+
EARS (Easy Approach to Requirements Syntax) authoring guide for writing clear, testable requirements using 5 statement patterns.
|
|
17
|
+
|
|
18
|
+
## When to use
|
|
19
|
+
|
|
20
|
+
- "SPEC 작성", "요구사항 정리", "EARS 구문"
|
|
21
|
+
- Automatically invoked by `/alfred:1-plan`
|
|
22
|
+
- When writing or refining SPEC documents
|
|
23
|
+
|
|
24
|
+
## How it works
|
|
25
|
+
|
|
26
|
+
EARS provides 5 statement patterns for structured requirements:
|
|
27
|
+
|
|
28
|
+
### 1. Ubiquitous (기본 요구사항)
|
|
29
|
+
**Format**: 시스템은 [기능]을 제공해야 한다
|
|
30
|
+
**Example**: 시스템은 사용자 인증 기능을 제공해야 한다
|
|
31
|
+
|
|
32
|
+
### 2. Event-driven (이벤트 기반)
|
|
33
|
+
**Format**: WHEN [조건]이면, 시스템은 [동작]해야 한다
|
|
34
|
+
**Example**: WHEN 사용자가 로그인하면, 시스템은 JWT 토큰을 발급해야 한다
|
|
35
|
+
|
|
36
|
+
### 3. State-driven (상태 기반)
|
|
37
|
+
**Format**: WHILE [상태]일 때, 시스템은 [동작]해야 한다
|
|
38
|
+
**Example**: WHILE 사용자가 인증된 상태일 때, 시스템은 보호된 리소스 접근을 허용해야 한다
|
|
39
|
+
|
|
40
|
+
### 4. Optional (선택적 기능)
|
|
41
|
+
**Format**: WHERE [조건]이면, 시스템은 [동작]할 수 있다
|
|
42
|
+
**Example**: WHERE 리프레시 토큰이 제공되면, 시스템은 새로운 액세스 토큰을 발급할 수 있다
|
|
43
|
+
|
|
44
|
+
### 5. Constraints (제약사항)
|
|
45
|
+
**Format**: IF [조건]이면, 시스템은 [제약]해야 한다
|
|
46
|
+
**Example**: IF 잘못된 토큰이 제공되면, 시스템은 접근을 거부해야 한다
|
|
47
|
+
|
|
48
|
+
## Writing Tips
|
|
49
|
+
|
|
50
|
+
✅ Be specific and measurable
|
|
51
|
+
✅ Avoid vague terms ("적절한", "충분한", "빠른")
|
|
52
|
+
✅ One requirement per statement
|
|
53
|
+
✅ Make it testable
|
|
54
|
+
|
|
55
|
+
## Examples
|
|
56
|
+
|
|
57
|
+
User: "JWT 인증 SPEC 작성해줘"
|
|
58
|
+
Claude: (applies EARS patterns to structure authentication requirements)
|
|
59
|
+
## Works well with
|
|
60
|
+
|
|
61
|
+
- moai-foundation-specs
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: moai-foundation-git
|
|
3
|
+
description: Git workflow automation (branching, TDD commits, PR management)
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Bash
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- TodoWrite
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Alfred Git Workflow
|
|
13
|
+
|
|
14
|
+
## What it does
|
|
15
|
+
|
|
16
|
+
Automates Git operations following MoAI-ADK conventions: branch creation, locale-based TDD commits, Draft PR creation, and PR Ready transition.
|
|
17
|
+
|
|
18
|
+
## When to use
|
|
19
|
+
|
|
20
|
+
- "브랜치 생성", "PR 만들어줘", "커밋 생성"
|
|
21
|
+
- Automatically invoked by `/alfred:1-plan`, `/alfred:2-run`, `/alfred:3-sync`
|
|
22
|
+
- Git workflow automation needed
|
|
23
|
+
|
|
24
|
+
## How it works
|
|
25
|
+
|
|
26
|
+
**1. Branch Creation**:
|
|
27
|
+
```bash
|
|
28
|
+
git checkout develop
|
|
29
|
+
git checkout -b feature/SPEC-AUTH-001
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**2. Locale-based TDD Commits**:
|
|
33
|
+
- **Korean (ko)**: 🔴 RED: [테스트 설명]
|
|
34
|
+
- **English (en)**: 🔴 RED: [Test description]
|
|
35
|
+
- **Japanese (ja)**: 🔴 RED: [テスト説明]
|
|
36
|
+
- **Chinese (zh)**: 🔴 RED: [测试说明]
|
|
37
|
+
|
|
38
|
+
Configured via `.moai/config.json`:
|
|
39
|
+
```json
|
|
40
|
+
{"project": {"locale": "ko"}}
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
**3. Draft PR Creation**:
|
|
44
|
+
Creates Draft PR with SPEC reference and test checklist.
|
|
45
|
+
|
|
46
|
+
**4. PR Ready Transition** (via `/alfred:3-sync`):
|
|
47
|
+
- Updates PR from Draft → Ready
|
|
48
|
+
- Adds quality gate checklist
|
|
49
|
+
- Verifies TRUST 5-principles
|
|
50
|
+
|
|
51
|
+
## Examples
|
|
52
|
+
|
|
53
|
+
### Example 1: Create feature branch
|
|
54
|
+
User: "/alfred:1-plan JWT 인증"
|
|
55
|
+
Claude: (creates `feature/SPEC-AUTH-001` branch and Draft PR)
|
|
56
|
+
|
|
57
|
+
### Example 2: TDD commit
|
|
58
|
+
User: "/alfred:2-run AUTH-001"
|
|
59
|
+
Claude: (commits with locale-specific format: 🔴 RED, 🟢 GREEN, ♻️ REFACTOR)
|
|
60
|
+
|
|
61
|
+
### Example 3: Finalize PR
|
|
62
|
+
User: "/alfred:3-sync"
|
|
63
|
+
Claude: (transitions PR to Ready state with quality report)
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: moai-foundation-langs
|
|
3
|
+
description: Auto-detects project language and framework (package.json, pyproject.toml,
|
|
4
|
+
etc)
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
- Write
|
|
9
|
+
- Edit
|
|
10
|
+
- TodoWrite
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Alfred Language Detection
|
|
14
|
+
|
|
15
|
+
## What it does
|
|
16
|
+
|
|
17
|
+
Automatically detects project's primary language and framework by scanning configuration files, then recommends appropriate testing tools and linters.
|
|
18
|
+
|
|
19
|
+
## When to use
|
|
20
|
+
|
|
21
|
+
- "언어 감지", "프로젝트 언어 확인", "테스트 도구 추천"
|
|
22
|
+
- Automatically invoked by `/alfred:0-project`, `/alfred:2-run`
|
|
23
|
+
- Setting up new project
|
|
24
|
+
|
|
25
|
+
## How it works
|
|
26
|
+
|
|
27
|
+
**Configuration File Scanning**:
|
|
28
|
+
- `package.json` → TypeScript/JavaScript (Jest/Vitest, ESLint/Biome)
|
|
29
|
+
- `pyproject.toml` → Python (pytest, ruff, black)
|
|
30
|
+
- `Cargo.toml` → Rust (cargo test, clippy, rustfmt)
|
|
31
|
+
- `go.mod` → Go (go test, golint, gofmt)
|
|
32
|
+
- `Gemfile` → Ruby (RSpec, RuboCop)
|
|
33
|
+
- `pubspec.yaml` → Dart/Flutter (flutter test, dart analyze)
|
|
34
|
+
- `build.gradle` → Java/Kotlin (JUnit, Checkstyle)
|
|
35
|
+
- `Package.swift` → Swift (XCTest, SwiftLint)
|
|
36
|
+
|
|
37
|
+
**Toolchain Recommendation**:
|
|
38
|
+
```json
|
|
39
|
+
{
|
|
40
|
+
"language": "Python",
|
|
41
|
+
"test_framework": "pytest",
|
|
42
|
+
"linter": "ruff",
|
|
43
|
+
"formatter": "black",
|
|
44
|
+
"type_checker": "mypy",
|
|
45
|
+
"package_manager": "uv"
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
**Framework Detection**:
|
|
50
|
+
- **Python**: FastAPI, Django, Flask
|
|
51
|
+
- **TypeScript**: React, Next.js, Vue
|
|
52
|
+
- **Java**: Spring Boot, Quarkus
|
|
53
|
+
|
|
54
|
+
**Supported Languages**: Python, TypeScript, Java, Go, Rust, Ruby, Dart, Swift, Kotlin, PHP, C#, C++, Elixir, Scala, Clojure (20+ languages)
|
|
55
|
+
|
|
56
|
+
## Examples
|
|
57
|
+
|
|
58
|
+
### Example 1: Auto-detect project language
|
|
59
|
+
User: "/alfred:0-project"
|
|
60
|
+
Claude: (scans config files, detects Python, recommends pytest + ruff + black)
|
|
61
|
+
|
|
62
|
+
### Example 2: Manual detection
|
|
63
|
+
User: "이 프로젝트는 무슨 언어?"
|
|
64
|
+
Claude: (analyzes config files and reports language + framework)
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: moai-foundation-specs
|
|
3
|
+
description: Validates SPEC YAML frontmatter (7 required fields) and HISTORY section
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Bash
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- TodoWrite
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Alfred SPEC Metadata Validation
|
|
13
|
+
|
|
14
|
+
## What it does
|
|
15
|
+
|
|
16
|
+
Validates SPEC document structure including YAML frontmatter (7 required fields) and HISTORY section compliance.
|
|
17
|
+
|
|
18
|
+
## When to use
|
|
19
|
+
|
|
20
|
+
- "SPEC 검증", "메타데이터 확인", "SPEC 구조 체크"
|
|
21
|
+
- Automatically invoked by `/alfred:1-plan`
|
|
22
|
+
- Before creating SPEC document
|
|
23
|
+
|
|
24
|
+
## How it works
|
|
25
|
+
|
|
26
|
+
**YAML Frontmatter Validation (7 required fields)**:
|
|
27
|
+
- `id`: SPEC ID (e.g., AUTH-001)
|
|
28
|
+
- `version`: Semantic Version (e.g., 0.0.1)
|
|
29
|
+
- `status`: draft|active|completed|deprecated
|
|
30
|
+
- `created`: YYYY-MM-DD format
|
|
31
|
+
- `updated`: YYYY-MM-DD format
|
|
32
|
+
- `author`: @{GitHub ID} format
|
|
33
|
+
- `priority`: low|medium|high|critical
|
|
34
|
+
|
|
35
|
+
**HISTORY Section Validation**:
|
|
36
|
+
- Checks existence of HISTORY section
|
|
37
|
+
- Verifies version history (INITIAL/ADDED/CHANGED/FIXED tags)
|
|
38
|
+
- Validates author and date consistency
|
|
39
|
+
|
|
40
|
+
**Format Validation**:
|
|
41
|
+
```bash
|
|
42
|
+
# Check required fields
|
|
43
|
+
rg "^(id|version|status|created|updated|author|priority):" .moai/specs/SPEC-*/spec.md
|
|
44
|
+
|
|
45
|
+
# Verify HISTORY section
|
|
46
|
+
rg "^## HISTORY" .moai/specs/SPEC-*/spec.md
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## Examples
|
|
50
|
+
|
|
51
|
+
### Example 1: Validate SPEC structure
|
|
52
|
+
User: "SPEC-AUTH-001 메타데이터 확인해줘"
|
|
53
|
+
Claude: (validates YAML frontmatter and HISTORY section, reports issues)
|
|
54
|
+
|
|
55
|
+
### Example 2: Batch validation
|
|
56
|
+
User: "모든 SPEC 메타데이터 검증"
|
|
57
|
+
Claude: (validates all SPEC documents and generates report)
|
|
58
|
+
## Works well with
|
|
59
|
+
|
|
60
|
+
- moai-foundation-ears
|
|
61
|
+
- moai-foundation-tags
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: moai-foundation-tags
|
|
3
|
+
description: Scans @TAG markers directly from code and generates inventory (CODE-FIRST)
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Bash
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- TodoWrite
|
|
10
|
+
---
|
|
11
|
+
|
|
12
|
+
# Alfred TAG Scanning
|
|
13
|
+
|
|
14
|
+
## What it does
|
|
15
|
+
|
|
16
|
+
Scans all @TAG markers (SPEC/TEST/CODE/DOC) directly from codebase and generates TAG inventory without intermediate caching (CODE-FIRST principle).
|
|
17
|
+
|
|
18
|
+
## When to use
|
|
19
|
+
|
|
20
|
+
- "TAG 스캔", "TAG 목록", "TAG 인벤토리"
|
|
21
|
+
- Automatically invoked by `/alfred:3-sync`
|
|
22
|
+
- "고아 TAG 찾아줘", "TAG 체인 확인"
|
|
23
|
+
|
|
24
|
+
## How it works
|
|
25
|
+
|
|
26
|
+
**CODE-FIRST Scanning**:
|
|
27
|
+
```bash
|
|
28
|
+
# Direct code scan without intermediate cache
|
|
29
|
+
rg '@(SPEC|TEST|CODE|DOC):' -n .moai/specs/ tests/ src/ docs/
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
**TAG Inventory Generation**:
|
|
33
|
+
- Lists all TAGs with file locations
|
|
34
|
+
- Detects orphaned TAGs (no corresponding SPEC/TEST/CODE)
|
|
35
|
+
- Identifies broken links in TAG chain
|
|
36
|
+
- Reports duplicate IDs
|
|
37
|
+
|
|
38
|
+
**TAG Chain Verification**:
|
|
39
|
+
- @SPEC → @TEST → @CODE → @DOC connection check
|
|
40
|
+
- Ensures traceability across all artifacts
|
|
41
|
+
|
|
42
|
+
## Examples
|
|
43
|
+
|
|
44
|
+
### Example 1: Full TAG scan
|
|
45
|
+
User: "TAG 전체 스캔해줘"
|
|
46
|
+
Claude: (scans all files and generates TAG inventory report)
|
|
47
|
+
|
|
48
|
+
### Example 2: Find orphaned TAGs
|
|
49
|
+
User: "고아 TAG 찾아줘"
|
|
50
|
+
Claude: (identifies TAGs without complete chain)
|
|
51
|
+
## Works well with
|
|
52
|
+
|
|
53
|
+
- moai-foundation-trust
|
|
54
|
+
- moai-foundation-specs
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: moai-foundation-trust
|
|
3
|
+
description: Validates TRUST 5-principles (Test 85%+, Readable, Unified, Secured,
|
|
4
|
+
Trackable)
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Write
|
|
8
|
+
- Edit
|
|
9
|
+
- Bash
|
|
10
|
+
- TodoWrite
|
|
11
|
+
---
|
|
12
|
+
|
|
13
|
+
# Foundation: TRUST Validation
|
|
14
|
+
|
|
15
|
+
## What it does
|
|
16
|
+
|
|
17
|
+
Validates MoAI-ADK's TRUST 5-principles compliance to ensure code quality, testability, security, and traceability.
|
|
18
|
+
|
|
19
|
+
## When to use
|
|
20
|
+
|
|
21
|
+
- "TRUST 원칙 확인", "품질 검증", "코드 품질 체크"
|
|
22
|
+
- Automatically invoked by `/alfred:3-sync`
|
|
23
|
+
- Before merging PR or releasing
|
|
24
|
+
|
|
25
|
+
## How it works
|
|
26
|
+
|
|
27
|
+
**T - Test First**:
|
|
28
|
+
- Checks test coverage ≥85% (pytest, vitest, go test, cargo test, etc.)
|
|
29
|
+
- Verifies TDD cycle compliance (RED → GREEN → REFACTOR)
|
|
30
|
+
|
|
31
|
+
**R - Readable**:
|
|
32
|
+
- File ≤300 LOC, Function ≤50 LOC, Parameters ≤5, Complexity ≤10
|
|
33
|
+
|
|
34
|
+
**U - Unified**:
|
|
35
|
+
- SPEC-driven architecture consistency, Clear module boundaries
|
|
36
|
+
|
|
37
|
+
**S - Secured**:
|
|
38
|
+
- Input validation, No hardcoded secrets, Access control
|
|
39
|
+
|
|
40
|
+
**T - Trackable**:
|
|
41
|
+
- TAG chain integrity (@SPEC → @TEST → @CODE → @DOC)
|
|
42
|
+
|
|
43
|
+
## Works well with
|
|
44
|
+
|
|
45
|
+
- moai-foundation-tags (TAG traceability)
|
|
46
|
+
- moai-foundation-specs (SPEC validation)
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: moai-lang-c
|
|
3
|
+
description: C best practices with Unity test framework, cppcheck, and Make build
|
|
4
|
+
system
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# C Expert
|
|
11
|
+
|
|
12
|
+
## What it does
|
|
13
|
+
|
|
14
|
+
Provides C-specific expertise for TDD development, including Unity test framework, cppcheck static analysis, and Make build system for system programming.
|
|
15
|
+
|
|
16
|
+
## When to use
|
|
17
|
+
|
|
18
|
+
- "C 테스트 작성", "Unity 테스트 프레임워크", "임베디드 C"
|
|
19
|
+
- Automatically invoked when working with C projects
|
|
20
|
+
- C SPEC implementation (`/alfred:2-build`)
|
|
21
|
+
|
|
22
|
+
## How it works
|
|
23
|
+
|
|
24
|
+
**TDD Framework**:
|
|
25
|
+
- **Unity**: Lightweight C test framework
|
|
26
|
+
- **CMock**: Mocking framework for C
|
|
27
|
+
- **Ceedling**: Build automation for C
|
|
28
|
+
- Test coverage with gcov
|
|
29
|
+
|
|
30
|
+
**Build Tools**:
|
|
31
|
+
- **Make**: Standard build automation
|
|
32
|
+
- **CMake**: Modern build system
|
|
33
|
+
- **GCC/Clang**: C compilers
|
|
34
|
+
|
|
35
|
+
**Code Quality**:
|
|
36
|
+
- **cppcheck**: Static code analysis
|
|
37
|
+
- **Valgrind**: Memory leak detection
|
|
38
|
+
- **splint**: Secure programming lint
|
|
39
|
+
|
|
40
|
+
**C Patterns**:
|
|
41
|
+
- **Opaque pointers**: Information hiding
|
|
42
|
+
- **Function pointers**: Callback mechanisms
|
|
43
|
+
- **Error codes**: Integer return values
|
|
44
|
+
- **Manual memory management**: malloc/free discipline
|
|
45
|
+
|
|
46
|
+
**Best Practices**:
|
|
47
|
+
- File ≤300 LOC, function ≤50 LOC
|
|
48
|
+
- Always check malloc return values
|
|
49
|
+
- Free every malloc
|
|
50
|
+
- Avoid buffer overflows (use strncpy, snprintf)
|
|
51
|
+
- Use const for read-only parameters
|
|
52
|
+
- Initialize all variables
|
|
53
|
+
|
|
54
|
+
## Examples
|
|
55
|
+
|
|
56
|
+
### Example 1: TDD with Unity
|
|
57
|
+
User: "/alfred:2-build DRIVER-001"
|
|
58
|
+
Claude: (creates RED test with Unity, GREEN implementation, REFACTOR with error handling)
|
|
59
|
+
|
|
60
|
+
### Example 2: Memory leak check
|
|
61
|
+
User: "Valgrind 메모리 체크"
|
|
62
|
+
Claude: (runs valgrind --leak-check=full and reports leaks)
|
|
63
|
+
|
|
64
|
+
## Works well with
|
|
65
|
+
|
|
66
|
+
- alfred-trust-validation (coverage verification)
|
|
67
|
+
- alfred-code-reviewer (C-specific review)
|
|
68
|
+
- alfred-debugger-pro (C debugging)
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: moai-lang-clojure
|
|
3
|
+
description: Clojure best practices with clojure.test, Leiningen, and immutable data
|
|
4
|
+
structures
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Clojure Expert
|
|
11
|
+
|
|
12
|
+
## What it does
|
|
13
|
+
|
|
14
|
+
Provides Clojure-specific expertise for TDD development, including clojure.test framework, Leiningen build tool, and immutable data structures with functional programming.
|
|
15
|
+
|
|
16
|
+
## When to use
|
|
17
|
+
|
|
18
|
+
- "Clojure 테스트 작성", "clojure.test 사용법", "불변 데이터 구조"
|
|
19
|
+
- Automatically invoked when working with Clojure projects
|
|
20
|
+
- Clojure SPEC implementation (`/alfred:2-build`)
|
|
21
|
+
|
|
22
|
+
## How it works
|
|
23
|
+
|
|
24
|
+
**TDD Framework**:
|
|
25
|
+
- **clojure.test**: Built-in testing library
|
|
26
|
+
- **midje**: BDD-style testing
|
|
27
|
+
- **test.check**: Property-based testing
|
|
28
|
+
- Test coverage with cloverage
|
|
29
|
+
|
|
30
|
+
**Build Tools**:
|
|
31
|
+
- **Leiningen**: Project automation, dependency management
|
|
32
|
+
- **deps.edn**: Official dependency tool
|
|
33
|
+
- **Boot**: Alternative build tool
|
|
34
|
+
|
|
35
|
+
**Code Quality**:
|
|
36
|
+
- **clj-kondo**: Linter for Clojure
|
|
37
|
+
- **cljfmt**: Code formatting
|
|
38
|
+
- **eastwood**: Additional linting
|
|
39
|
+
|
|
40
|
+
**Clojure Patterns**:
|
|
41
|
+
- **Immutable data structures**: Persistent collections
|
|
42
|
+
- **Pure functions**: Functional core, imperative shell
|
|
43
|
+
- **Threading macros**: -> and ->> for readability
|
|
44
|
+
- **Lazy sequences**: Infinite data processing
|
|
45
|
+
- **Transducers**: Composable transformations
|
|
46
|
+
|
|
47
|
+
**Best Practices**:
|
|
48
|
+
- File ≤300 LOC, function ≤50 LOC
|
|
49
|
+
- Prefer let bindings over def
|
|
50
|
+
- Use namespaces for organization
|
|
51
|
+
- Destructuring for data access
|
|
52
|
+
- Avoid mutable state
|
|
53
|
+
|
|
54
|
+
## Examples
|
|
55
|
+
|
|
56
|
+
### Example 1: TDD with clojure.test
|
|
57
|
+
User: "/alfred:2-build TRANSFORM-001"
|
|
58
|
+
Claude: (creates RED test with clojure.test, GREEN implementation with threading macros, REFACTOR)
|
|
59
|
+
|
|
60
|
+
### Example 2: Property testing
|
|
61
|
+
User: "test.check 속성 테스트"
|
|
62
|
+
Claude: (creates generative tests with test.check)
|
|
63
|
+
|
|
64
|
+
## Works well with
|
|
65
|
+
|
|
66
|
+
- alfred-trust-validation (coverage verification)
|
|
67
|
+
- alfred-code-reviewer (Clojure-specific review)
|
|
68
|
+
- alfred-refactoring-coach (functional refactoring)
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: moai-lang-cpp
|
|
3
|
+
description: C++ best practices with Google Test, clang-format, and modern C++ (C++17/20)
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Bash
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# C++ Expert
|
|
10
|
+
|
|
11
|
+
## What it does
|
|
12
|
+
|
|
13
|
+
Provides C++-specific expertise for TDD development, including Google Test framework, clang-format formatting, and modern C++ (C++17/20) features.
|
|
14
|
+
|
|
15
|
+
## When to use
|
|
16
|
+
|
|
17
|
+
- "C++ 테스트 작성", "Google Test 사용법", "모던 C++"
|
|
18
|
+
- Automatically invoked when working with C++ projects
|
|
19
|
+
- C++ SPEC implementation (`/alfred:2-build`)
|
|
20
|
+
|
|
21
|
+
## How it works
|
|
22
|
+
|
|
23
|
+
**TDD Framework**:
|
|
24
|
+
- **Google Test (gtest)**: Unit testing framework
|
|
25
|
+
- **Google Mock (gmock)**: Mocking framework
|
|
26
|
+
- **Catch2**: Alternative testing framework
|
|
27
|
+
- Test coverage with gcov/lcov
|
|
28
|
+
|
|
29
|
+
**Build Tools**:
|
|
30
|
+
- **CMake**: Cross-platform build system
|
|
31
|
+
- **Make**: Traditional build tool
|
|
32
|
+
- **Conan/vcpkg**: Package managers
|
|
33
|
+
|
|
34
|
+
**Code Quality**:
|
|
35
|
+
- **clang-format**: Code formatting
|
|
36
|
+
- **clang-tidy**: Static analysis
|
|
37
|
+
- **cppcheck**: Additional static analysis
|
|
38
|
+
|
|
39
|
+
**Modern C++ Features**:
|
|
40
|
+
- **Smart pointers**: unique_ptr, shared_ptr, weak_ptr
|
|
41
|
+
- **Move semantics**: std::move, rvalue references
|
|
42
|
+
- **Lambda expressions**: Inline functions
|
|
43
|
+
- **auto keyword**: Type inference
|
|
44
|
+
- **constexpr**: Compile-time evaluation
|
|
45
|
+
- **std::optional**: Nullable types (C++17)
|
|
46
|
+
- **Concepts**: Type constraints (C++20)
|
|
47
|
+
|
|
48
|
+
**Best Practices**:
|
|
49
|
+
- File ≤300 LOC, function ≤50 LOC
|
|
50
|
+
- RAII (Resource Acquisition Is Initialization)
|
|
51
|
+
- Rule of Five (destructor, copy/move constructors/assignments)
|
|
52
|
+
- Prefer stack allocation over heap
|
|
53
|
+
- Const correctness
|
|
54
|
+
|
|
55
|
+
## Examples
|
|
56
|
+
|
|
57
|
+
### Example 1: TDD with Google Test
|
|
58
|
+
User: "/alfred:2-build CACHE-001"
|
|
59
|
+
Claude: (creates RED test with gtest, GREEN implementation with smart pointers, REFACTOR)
|
|
60
|
+
|
|
61
|
+
### Example 2: Modern C++ refactoring
|
|
62
|
+
User: "C++17 기능으로 리팩토링"
|
|
63
|
+
Claude: (refactors code to use std::optional, structured bindings)
|
|
64
|
+
|
|
65
|
+
## Works well with
|
|
66
|
+
|
|
67
|
+
- alfred-trust-validation (coverage verification)
|
|
68
|
+
- alfred-code-reviewer (C++-specific review)
|
|
69
|
+
- alfred-performance-optimizer (C++ profiling)
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: moai-lang-csharp
|
|
3
|
+
description: C# best practices with xUnit, .NET tooling, LINQ, and async/await patterns
|
|
4
|
+
allowed-tools:
|
|
5
|
+
- Read
|
|
6
|
+
- Bash
|
|
7
|
+
---
|
|
8
|
+
|
|
9
|
+
# C# Expert
|
|
10
|
+
|
|
11
|
+
## What it does
|
|
12
|
+
|
|
13
|
+
Provides C#-specific expertise for TDD development, including xUnit testing, .NET CLI tooling, LINQ query expressions, and async/await patterns.
|
|
14
|
+
|
|
15
|
+
## When to use
|
|
16
|
+
|
|
17
|
+
- "C# 테스트 작성", "xUnit 사용법", "LINQ 쿼리"
|
|
18
|
+
- Automatically invoked when working with .NET projects
|
|
19
|
+
- C# SPEC implementation (`/alfred:2-build`)
|
|
20
|
+
|
|
21
|
+
## How it works
|
|
22
|
+
|
|
23
|
+
**TDD Framework**:
|
|
24
|
+
- **xUnit**: Modern .NET testing framework
|
|
25
|
+
- **Moq**: Mocking library for interfaces
|
|
26
|
+
- **FluentAssertions**: Expressive assertions
|
|
27
|
+
- Test coverage ≥85% with Coverlet
|
|
28
|
+
|
|
29
|
+
**Build Tools**:
|
|
30
|
+
- **.NET CLI**: dotnet build, test, run
|
|
31
|
+
- **NuGet**: Package management
|
|
32
|
+
- **MSBuild**: Build system
|
|
33
|
+
|
|
34
|
+
**Code Quality**:
|
|
35
|
+
- **StyleCop**: C# style checker
|
|
36
|
+
- **SonarAnalyzer**: Static code analysis
|
|
37
|
+
- **EditorConfig**: Code formatting rules
|
|
38
|
+
|
|
39
|
+
**C# Patterns**:
|
|
40
|
+
- **LINQ**: Query expressions for collections
|
|
41
|
+
- **Async/await**: Asynchronous programming
|
|
42
|
+
- **Properties**: Get/set accessors
|
|
43
|
+
- **Extension methods**: Add methods to existing types
|
|
44
|
+
- **Nullable reference types**: Null safety (C# 8+)
|
|
45
|
+
|
|
46
|
+
**Best Practices**:
|
|
47
|
+
- File ≤300 LOC, method ≤50 LOC
|
|
48
|
+
- Use PascalCase for public members
|
|
49
|
+
- Prefer `var` for local variables when type is obvious
|
|
50
|
+
- Async methods should end with "Async" suffix
|
|
51
|
+
- Use string interpolation ($"") over concatenation
|
|
52
|
+
|
|
53
|
+
## Examples
|
|
54
|
+
|
|
55
|
+
### Example 1: TDD with xUnit
|
|
56
|
+
User: "/alfred:2-build SERVICE-001"
|
|
57
|
+
Claude: (creates RED test with xUnit, GREEN implementation with async/await, REFACTOR)
|
|
58
|
+
|
|
59
|
+
### Example 2: LINQ query optimization
|
|
60
|
+
User: "LINQ 쿼리 최적화"
|
|
61
|
+
Claude: (analyzes LINQ queries and suggests IEnumerable vs IQueryable optimizations)
|
|
62
|
+
|
|
63
|
+
## Works well with
|
|
64
|
+
|
|
65
|
+
- alfred-trust-validation (coverage verification)
|
|
66
|
+
- alfred-code-reviewer (C#-specific review)
|
|
67
|
+
- web-api-expert (ASP.NET Core API development)
|