moai-adk 0.3.13__py3-none-any.whl → 0.4.1__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 +1 -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/init.py +10 -5
- moai_adk/cli/commands/status.py +1 -1
- moai_adk/cli/commands/update.py +210 -8
- moai_adk/cli/prompts/init_prompts.py +15 -19
- moai_adk/core/__init__.py +1 -1
- moai_adk/core/diagnostics/slash_commands.py +1 -1
- moai_adk/core/git/branch.py +1 -1
- moai_adk/core/git/manager.py +1 -1
- moai_adk/core/project/backup_utils.py +1 -0
- moai_adk/core/project/phase_executor.py +3 -1
- moai_adk/core/project/validator.py +3 -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 +12 -3
- moai_adk/core/template/config.py +24 -0
- moai_adk/core/template/languages.py +1 -1
- moai_adk/core/template/merger.py +74 -4
- moai_adk/core/template/processor.py +62 -14
- moai_adk/templates/.claude/agents/alfred/cc-manager.md +765 -191
- moai_adk/templates/.claude/agents/alfred/debug-helper.md +116 -103
- moai_adk/templates/.claude/agents/alfred/doc-syncer.md +130 -116
- moai_adk/templates/.claude/agents/alfred/git-manager.md +186 -174
- moai_adk/templates/.claude/agents/alfred/implementation-planner.md +227 -213
- moai_adk/templates/.claude/agents/alfred/project-manager.md +205 -125
- moai_adk/templates/.claude/agents/alfred/quality-gate.md +224 -209
- moai_adk/templates/.claude/agents/alfred/spec-builder.md +174 -160
- moai_adk/templates/.claude/agents/alfred/tag-agent.md +151 -139
- moai_adk/templates/.claude/agents/alfred/tdd-implementer.md +209 -196
- moai_adk/templates/.claude/agents/alfred/trust-checker.md +247 -233
- moai_adk/templates/.claude/commands/alfred/0-project.md +856 -355
- moai_adk/templates/.claude/commands/alfred/1-plan.md +572 -0
- moai_adk/templates/.claude/commands/alfred/2-run.md +470 -0
- moai_adk/templates/.claude/commands/alfred/3-sync.md +366 -356
- moai_adk/templates/.claude/hooks/alfred/README.md +52 -52
- moai_adk/templates/.claude/hooks/alfred/alfred_hooks.py +44 -48
- moai_adk/templates/.claude/hooks/alfred/core/__init__.py +17 -17
- moai_adk/templates/.claude/hooks/alfred/core/checkpoint.py +59 -59
- moai_adk/templates/.claude/hooks/alfred/core/context.py +19 -19
- moai_adk/templates/.claude/hooks/alfred/core/project.py +52 -52
- moai_adk/templates/.claude/hooks/alfred/handlers/__init__.py +1 -1
- moai_adk/templates/.claude/hooks/alfred/handlers/notification.py +4 -4
- moai_adk/templates/.claude/hooks/alfred/handlers/session.py +30 -51
- moai_adk/templates/.claude/hooks/alfred/handlers/tool.py +16 -17
- moai_adk/templates/.claude/hooks/alfred/handlers/user.py +11 -11
- moai_adk/templates/.claude/output-styles/alfred/agentic-coding.md +308 -307
- moai_adk/templates/.claude/output-styles/alfred/moai-adk-learning.md +297 -296
- moai_adk/templates/.claude/output-styles/alfred/study-with-alfred.md +191 -190
- moai_adk/templates/.claude/skills/moai-alfred-code-reviewer/SKILL.md +112 -0
- moai_adk/templates/.claude/skills/moai-alfred-debugger-pro/SKILL.md +103 -0
- moai_adk/templates/.claude/skills/moai-alfred-ears-authoring/SKILL.md +103 -0
- moai_adk/templates/.claude/skills/moai-alfred-git-workflow/SKILL.md +95 -0
- moai_adk/templates/.claude/skills/moai-alfred-language-detection/SKILL.md +99 -0
- moai_adk/templates/.claude/skills/moai-alfred-performance-optimizer/SKILL.md +105 -0
- moai_adk/templates/.claude/skills/moai-alfred-refactoring-coach/SKILL.md +97 -0
- moai_adk/templates/.claude/skills/moai-alfred-spec-metadata-validation/SKILL.md +97 -0
- moai_adk/templates/.claude/skills/moai-alfred-tag-scanning/SKILL.md +90 -0
- moai_adk/templates/.claude/skills/moai-alfred-trust-validation/SKILL.md +99 -0
- moai_adk/templates/.claude/skills/moai-alfred-tui-survey/SKILL.md +87 -0
- moai_adk/templates/.claude/skills/moai-alfred-tui-survey/examples.md +62 -0
- moai_adk/templates/.claude/skills/moai-claude-code/SKILL.md +94 -0
- moai_adk/templates/.claude/skills/moai-claude-code/examples.md +513 -0
- moai_adk/templates/.claude/skills/moai-claude-code/reference.md +433 -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 +363 -0
- moai_adk/templates/.claude/skills/moai-claude-code/templates/settings-full.json +595 -0
- moai_adk/templates/.claude/skills/moai-claude-code/templates/skill-full.md +496 -0
- moai_adk/templates/.claude/skills/moai-domain-backend/SKILL.md +99 -0
- moai_adk/templates/.claude/skills/moai-domain-cli-tool/SKILL.md +95 -0
- moai_adk/templates/.claude/skills/moai-domain-data-science/SKILL.md +98 -0
- moai_adk/templates/.claude/skills/moai-domain-database/SKILL.md +100 -0
- moai_adk/templates/.claude/skills/moai-domain-devops/SKILL.md +100 -0
- moai_adk/templates/.claude/skills/moai-domain-frontend/SKILL.md +99 -0
- moai_adk/templates/.claude/skills/moai-domain-ml/SKILL.md +99 -0
- moai_adk/templates/.claude/skills/moai-domain-mobile-app/SKILL.md +93 -0
- moai_adk/templates/.claude/skills/moai-domain-security/SKILL.md +105 -0
- moai_adk/templates/.claude/skills/moai-domain-web-api/SKILL.md +97 -0
- moai_adk/templates/.claude/skills/moai-essentials-debug/SKILL.md +102 -0
- moai_adk/templates/.claude/skills/moai-essentials-perf/SKILL.md +104 -0
- moai_adk/templates/.claude/skills/moai-essentials-refactor/SKILL.md +96 -0
- moai_adk/templates/.claude/skills/moai-essentials-review/SKILL.md +112 -0
- moai_adk/templates/.claude/skills/moai-foundation-ears/SKILL.md +98 -0
- moai_adk/templates/.claude/skills/moai-foundation-git/SKILL.md +90 -0
- moai_adk/templates/.claude/skills/moai-foundation-langs/SKILL.md +94 -0
- moai_adk/templates/.claude/skills/moai-foundation-specs/SKILL.md +93 -0
- moai_adk/templates/.claude/skills/moai-foundation-tags/SKILL.md +86 -0
- moai_adk/templates/.claude/skills/moai-foundation-trust/SKILL.md +86 -0
- moai_adk/templates/.claude/skills/moai-lang-c/SKILL.md +100 -0
- moai_adk/templates/.claude/skills/moai-lang-clojure/SKILL.md +100 -0
- moai_adk/templates/.claude/skills/moai-lang-cpp/SKILL.md +102 -0
- moai_adk/templates/.claude/skills/moai-lang-csharp/SKILL.md +100 -0
- moai_adk/templates/.claude/skills/moai-lang-dart/SKILL.md +98 -0
- moai_adk/templates/.claude/skills/moai-lang-elixir/SKILL.md +99 -0
- moai_adk/templates/.claude/skills/moai-lang-go/SKILL.md +100 -0
- moai_adk/templates/.claude/skills/moai-lang-haskell/SKILL.md +100 -0
- moai_adk/templates/.claude/skills/moai-lang-java/SKILL.md +98 -0
- moai_adk/templates/.claude/skills/moai-lang-javascript/SKILL.md +96 -0
- moai_adk/templates/.claude/skills/moai-lang-julia/SKILL.md +98 -0
- moai_adk/templates/.claude/skills/moai-lang-kotlin/SKILL.md +99 -0
- moai_adk/templates/.claude/skills/moai-lang-lua/SKILL.md +98 -0
- moai_adk/templates/.claude/skills/moai-lang-php/SKILL.md +98 -0
- moai_adk/templates/.claude/skills/moai-lang-python/SKILL.md +96 -0
- moai_adk/templates/.claude/skills/moai-lang-r/SKILL.md +99 -0
- moai_adk/templates/.claude/skills/moai-lang-ruby/SKILL.md +99 -0
- moai_adk/templates/.claude/skills/moai-lang-rust/SKILL.md +100 -0
- moai_adk/templates/.claude/skills/moai-lang-scala/SKILL.md +100 -0
- moai_adk/templates/.claude/skills/moai-lang-shell/SKILL.md +100 -0
- moai_adk/templates/.claude/skills/moai-lang-sql/SKILL.md +100 -0
- moai_adk/templates/.claude/skills/moai-lang-swift/SKILL.md +99 -0
- moai_adk/templates/.claude/skills/moai-lang-typescript/SKILL.md +96 -0
- moai_adk/templates/.github/PULL_REQUEST_TEMPLATE.md +44 -43
- moai_adk/templates/.github/workflows/moai-gitflow.yml +36 -35
- moai_adk/templates/.moai/config.json +9 -6
- moai_adk/templates/.moai/memory/development-guide.md +220 -221
- moai_adk/templates/.moai/memory/gitflow-protection-policy.md +85 -85
- moai_adk/templates/.moai/memory/spec-metadata.md +149 -150
- moai_adk/templates/.moai/project/product.md +90 -90
- moai_adk/templates/.moai/project/structure.md +85 -85
- moai_adk/templates/.moai/project/tech.md +117 -117
- moai_adk/templates/CLAUDE.md +354 -573
- moai_adk/templates/__init__.py +1 -1
- moai_adk/utils/__init__.py +1 -1
- moai_adk/utils/banner.py +7 -7
- moai_adk/utils/logger.py +1 -1
- moai_adk-0.4.1.dist-info/METADATA +303 -0
- moai_adk-0.4.1.dist-info/RECORD +152 -0
- moai_adk/templates/.claude/commands/alfred/1-spec.md +0 -532
- moai_adk/templates/.claude/commands/alfred/2-build.md +0 -432
- moai_adk/templates/.moai/hooks/pre-push.sample +0 -88
- moai_adk-0.3.13.dist-info/METADATA +0 -1586
- moai_adk-0.3.13.dist-info/RECORD +0 -90
- {moai_adk-0.3.13.dist-info → moai_adk-0.4.1.dist-info}/WHEEL +0 -0
- {moai_adk-0.3.13.dist-info → moai_adk-0.4.1.dist-info}/entry_points.txt +0 -0
- {moai_adk-0.3.13.dist-info → moai_adk-0.4.1.dist-info}/licenses/LICENSE +0 -0
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
|
|
3
|
+
name: moai-lang-julia
|
|
4
|
+
description: Julia best practices with Test stdlib, Pkg manager, and scientific computing patterns. Use when writing or reviewing Julia code in project workflows.
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Julia Expert
|
|
11
|
+
|
|
12
|
+
## Skill Metadata
|
|
13
|
+
| Field | Value |
|
|
14
|
+
| ----- | ----- |
|
|
15
|
+
| Allowed tools | Read (read_file), Bash (terminal) |
|
|
16
|
+
| Auto-load | On demand when language keywords are detected |
|
|
17
|
+
| Trigger cues | Julia code discussions, framework guidance, or file extensions such as .jl. |
|
|
18
|
+
| Tier | 3 |
|
|
19
|
+
|
|
20
|
+
## What it does
|
|
21
|
+
|
|
22
|
+
Provides Julia-specific expertise for TDD development, including Test standard library, Pkg package manager, and high-performance scientific computing patterns.
|
|
23
|
+
|
|
24
|
+
## When to use
|
|
25
|
+
|
|
26
|
+
- Engages when the conversation references Julia work, frameworks, or files like .jl.
|
|
27
|
+
- "Writing Julia tests", "How to use Test stdlib", "Scientific computing"
|
|
28
|
+
- Automatically invoked when working with Julia projects
|
|
29
|
+
- Julia SPEC implementation (`/alfred:2-run`)
|
|
30
|
+
|
|
31
|
+
## How it works
|
|
32
|
+
|
|
33
|
+
**TDD Framework**:
|
|
34
|
+
- **Test**: Built-in testing library (@test, @testset)
|
|
35
|
+
- **Coverage.jl**: Test coverage analysis
|
|
36
|
+
- **BenchmarkTools.jl**: Performance benchmarking
|
|
37
|
+
|
|
38
|
+
**Package Management**:
|
|
39
|
+
- **Pkg**: Built-in package manager
|
|
40
|
+
- **Project.toml**: Package configuration
|
|
41
|
+
- **Manifest.toml**: Dependency lock file
|
|
42
|
+
|
|
43
|
+
**Code Quality**:
|
|
44
|
+
- **JuliaFormatter.jl**: Code formatting
|
|
45
|
+
- **Lint.jl**: Static analysis
|
|
46
|
+
- **JET.jl**: Type inference analysis
|
|
47
|
+
|
|
48
|
+
**Scientific Computing**:
|
|
49
|
+
- **Multiple dispatch**: Method specialization on argument types
|
|
50
|
+
- **Type stability**: Performance optimization
|
|
51
|
+
- **Broadcasting**: Element-wise operations (. syntax)
|
|
52
|
+
- **Linear algebra**: Built-in BLAS/LAPACK
|
|
53
|
+
|
|
54
|
+
**Best Practices**:
|
|
55
|
+
- File ≤300 LOC, function ≤50 LOC
|
|
56
|
+
- Type annotations for performance-critical code
|
|
57
|
+
- Prefer abstract types for function arguments
|
|
58
|
+
- Use @inbounds for performance (after bounds checking)
|
|
59
|
+
- Profile before optimizing
|
|
60
|
+
|
|
61
|
+
## Examples
|
|
62
|
+
```bash
|
|
63
|
+
julia --project -e 'using Pkg; Pkg.test()'
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Inputs
|
|
67
|
+
- Language-specific source directories (e.g. `src/`, `app/`).
|
|
68
|
+
- Language-specific build/test configuration files (e.g. `package.json`, `pyproject.toml`, `go.mod`).
|
|
69
|
+
- Relevant test suites and sample data.
|
|
70
|
+
|
|
71
|
+
## Outputs
|
|
72
|
+
- Test/lint execution plan tailored to the selected language.
|
|
73
|
+
- List of key language idioms and review checkpoints.
|
|
74
|
+
|
|
75
|
+
## Failure Modes
|
|
76
|
+
- When the language runtime or package manager is not installed.
|
|
77
|
+
- When the main language cannot be determined in a multilingual project.
|
|
78
|
+
|
|
79
|
+
## Dependencies
|
|
80
|
+
- Access to the project file is required using the Read/Grep tool.
|
|
81
|
+
- When used with `Skill("moai-foundation-langs")`, it is easy to share cross-language conventions.
|
|
82
|
+
|
|
83
|
+
## References
|
|
84
|
+
- Julia Language. "Documentation." https://docs.julialang.org/en/v1/ (accessed 2025-03-29).
|
|
85
|
+
- JuliaFormatter.jl. "JuliaFormatter Documentation." https://domluna.github.io/JuliaFormatter.jl/stable/ (accessed 2025-03-29).
|
|
86
|
+
|
|
87
|
+
## Changelog
|
|
88
|
+
- 2025-03-29: Input/output/failure response/reference information for each language has been specified.
|
|
89
|
+
|
|
90
|
+
## Works well with
|
|
91
|
+
|
|
92
|
+
- alfred-trust-validation (coverage verification)
|
|
93
|
+
- alfred-code-reviewer (Julia-specific review)
|
|
94
|
+
- alfred-performance-optimizer (Julia profiling)
|
|
95
|
+
|
|
96
|
+
## Best Practices
|
|
97
|
+
- Enable automatic validation by matching your linter with the language's official style guide.
|
|
98
|
+
- Fix test/build pipelines with reproducible commands in CI.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
|
|
3
|
+
name: moai-lang-kotlin
|
|
4
|
+
description: Kotlin best practices with JUnit, Gradle, ktlint, coroutines, and extension functions. Use when writing or reviewing Kotlin code in project workflows.
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Kotlin Expert
|
|
11
|
+
|
|
12
|
+
## Skill Metadata
|
|
13
|
+
| Field | Value |
|
|
14
|
+
| ----- | ----- |
|
|
15
|
+
| Allowed tools | Read (read_file), Bash (terminal) |
|
|
16
|
+
| Auto-load | On demand when language keywords are detected |
|
|
17
|
+
| Trigger cues | Kotlin code discussions, framework guidance, or file extensions such as .kt/.kts. |
|
|
18
|
+
| Tier | 3 |
|
|
19
|
+
|
|
20
|
+
## What it does
|
|
21
|
+
|
|
22
|
+
Provides Kotlin-specific expertise for TDD development, including JUnit testing, Gradle build system, ktlint linting, coroutines for concurrency, and extension functions.
|
|
23
|
+
|
|
24
|
+
## When to use
|
|
25
|
+
|
|
26
|
+
- Engages when the conversation references Kotlin work, frameworks, or files like .kt/.kts.
|
|
27
|
+
- “Writing Kotlin tests”, “How to use coroutines”, “Android patterns”
|
|
28
|
+
- Automatically invoked when working with Kotlin/Android projects
|
|
29
|
+
- Kotlin SPEC implementation (`/alfred:2-run`)
|
|
30
|
+
|
|
31
|
+
## How it works
|
|
32
|
+
|
|
33
|
+
**TDD Framework**:
|
|
34
|
+
- **JUnit 5**: Unit testing with Kotlin extensions
|
|
35
|
+
- **MockK**: Kotlin-friendly mocking library
|
|
36
|
+
- **Kotest**: Kotlin-native testing framework
|
|
37
|
+
- Test coverage ≥85% with JaCoCo
|
|
38
|
+
|
|
39
|
+
**Build Tools**:
|
|
40
|
+
- **Gradle**: build.gradle.kts with Kotlin DSL
|
|
41
|
+
- **Maven**: pom.xml alternative
|
|
42
|
+
- Multi-platform support (JVM, Native, JS)
|
|
43
|
+
|
|
44
|
+
**Code Quality**:
|
|
45
|
+
- **ktlint**: Kotlin linter with formatting
|
|
46
|
+
- **detekt**: Static code analysis
|
|
47
|
+
- **Android Lint**: Android-specific checks
|
|
48
|
+
|
|
49
|
+
**Kotlin Features**:
|
|
50
|
+
- **Coroutines**: Async programming with suspend functions
|
|
51
|
+
- **Extension functions**: Add methods to existing classes
|
|
52
|
+
- **Data classes**: Automatic equals/hashCode/toString
|
|
53
|
+
- **Null safety**: Non-nullable types by default
|
|
54
|
+
- **Smart casts**: Automatic type casting after checks
|
|
55
|
+
|
|
56
|
+
**Android Patterns**:
|
|
57
|
+
- **Jetpack Compose**: Declarative UI
|
|
58
|
+
- **ViewModel**: UI state management
|
|
59
|
+
- **Room**: Database abstraction
|
|
60
|
+
- **Retrofit**: Network requests
|
|
61
|
+
|
|
62
|
+
## Examples
|
|
63
|
+
```bash
|
|
64
|
+
./gradlew test && ./gradlew ktlintCheck
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Inputs
|
|
68
|
+
- Language-specific source directories (e.g. `src/`, `app/`).
|
|
69
|
+
- Language-specific build/test configuration files (e.g. `package.json`, `pyproject.toml`, `go.mod`).
|
|
70
|
+
- Relevant test suites and sample data.
|
|
71
|
+
|
|
72
|
+
## Outputs
|
|
73
|
+
- Test/lint execution plan tailored to the selected language.
|
|
74
|
+
- List of key language idioms and review checkpoints.
|
|
75
|
+
|
|
76
|
+
## Failure Modes
|
|
77
|
+
- When the language runtime or package manager is not installed.
|
|
78
|
+
- When the main language cannot be determined in a multilingual project.
|
|
79
|
+
|
|
80
|
+
## Dependencies
|
|
81
|
+
- Access to the project file is required using the Read/Grep tool.
|
|
82
|
+
- When used with `Skill("moai-foundation-langs")`, it is easy to share cross-language conventions.
|
|
83
|
+
|
|
84
|
+
## References
|
|
85
|
+
- JetBrains. "Kotlin Language Documentation." https://kotlinlang.org/docs/home.html (accessed 2025-03-29).
|
|
86
|
+
- Pinterest. "ktlint." https://pinterest.github.io/ktlint/ (accessed 2025-03-29).
|
|
87
|
+
|
|
88
|
+
## Changelog
|
|
89
|
+
- 2025-03-29: Input/output/failure response/reference information for each language has been specified.
|
|
90
|
+
|
|
91
|
+
## Works well with
|
|
92
|
+
|
|
93
|
+
- alfred-trust-validation (coverage verification)
|
|
94
|
+
- alfred-code-reviewer (Kotlin-specific review)
|
|
95
|
+
- mobile-app-expert (Android app development)
|
|
96
|
+
|
|
97
|
+
## Best Practices
|
|
98
|
+
- Enable automatic validation by matching your linter with the language's official style guide.
|
|
99
|
+
- Fix test/build pipelines with reproducible commands in CI.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
|
|
3
|
+
name: moai-lang-lua
|
|
4
|
+
description: Lua best practices with busted, luacheck, and embedded scripting patterns. Use when writing or reviewing Lua code in project workflows.
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Lua Expert
|
|
11
|
+
|
|
12
|
+
## Skill Metadata
|
|
13
|
+
| Field | Value |
|
|
14
|
+
| ----- | ----- |
|
|
15
|
+
| Allowed tools | Read (read_file), Bash (terminal) |
|
|
16
|
+
| Auto-load | On demand when language keywords are detected |
|
|
17
|
+
| Trigger cues | Lua code discussions, framework guidance, or file extensions such as .lua. |
|
|
18
|
+
| Tier | 3 |
|
|
19
|
+
|
|
20
|
+
## What it does
|
|
21
|
+
|
|
22
|
+
Provides Lua-specific expertise for TDD development, including busted testing framework, luacheck linting, and embedded scripting patterns for game development and system configuration.
|
|
23
|
+
|
|
24
|
+
## When to use
|
|
25
|
+
|
|
26
|
+
- Engages when the conversation references Lua work, frameworks, or files like .lua.
|
|
27
|
+
- "Writing Lua tests", "How to use busted", "Embedded scripting"
|
|
28
|
+
- Automatically invoked when working with Lua projects
|
|
29
|
+
- Lua SPEC implementation (`/alfred:2-run`)
|
|
30
|
+
|
|
31
|
+
## How it works
|
|
32
|
+
|
|
33
|
+
**TDD Framework**:
|
|
34
|
+
- **busted**: Elegant Lua testing framework
|
|
35
|
+
- **luassert**: Assertion library
|
|
36
|
+
- **lua-coveralls**: Coverage reporting
|
|
37
|
+
- BDD-style test writing
|
|
38
|
+
|
|
39
|
+
**Code Quality**:
|
|
40
|
+
- **luacheck**: Lua linter and static analyzer
|
|
41
|
+
- **StyLua**: Code formatting
|
|
42
|
+
- **luadoc**: Documentation generation
|
|
43
|
+
|
|
44
|
+
**Package Management**:
|
|
45
|
+
- **LuaRocks**: Package manager
|
|
46
|
+
- **rockspec**: Package specification
|
|
47
|
+
|
|
48
|
+
**Lua Patterns**:
|
|
49
|
+
- **Tables**: Versatile data structure
|
|
50
|
+
- **Metatables**: Operator overloading
|
|
51
|
+
- **Closures**: Function factories
|
|
52
|
+
- **Coroutines**: Cooperative multitasking
|
|
53
|
+
|
|
54
|
+
**Best Practices**:
|
|
55
|
+
- File ≤300 LOC, function ≤50 LOC
|
|
56
|
+
- Use `local` for all variables
|
|
57
|
+
- Prefer tables over multiple return values
|
|
58
|
+
- Document public APIs
|
|
59
|
+
- Avoid global variables
|
|
60
|
+
|
|
61
|
+
## Examples
|
|
62
|
+
```bash
|
|
63
|
+
luacheck src && busted
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Inputs
|
|
67
|
+
- Language-specific source directories (e.g. `src/`, `app/`).
|
|
68
|
+
- Language-specific build/test configuration files (e.g. `package.json`, `pyproject.toml`, `go.mod`).
|
|
69
|
+
- Relevant test suites and sample data.
|
|
70
|
+
|
|
71
|
+
## Outputs
|
|
72
|
+
- Test/lint execution plan tailored to the selected language.
|
|
73
|
+
- List of key language idioms and review checkpoints.
|
|
74
|
+
|
|
75
|
+
## Failure Modes
|
|
76
|
+
- When the language runtime or package manager is not installed.
|
|
77
|
+
- When the main language cannot be determined in a multilingual project.
|
|
78
|
+
|
|
79
|
+
## Dependencies
|
|
80
|
+
- Access to the project file is required using the Read/Grep tool.
|
|
81
|
+
- When used with `Skill("moai-foundation-langs")`, it is easy to share cross-language conventions.
|
|
82
|
+
|
|
83
|
+
## References
|
|
84
|
+
- Lua.org. "Programming in Lua." https://www.lua.org/pil/contents.html (accessed 2025-03-29).
|
|
85
|
+
- Olivine Labs. "busted." https://olivinelabs.com/busted/ (accessed 2025-03-29).
|
|
86
|
+
|
|
87
|
+
## Changelog
|
|
88
|
+
- 2025-03-29: Input/output/failure response/reference information for each language has been specified.
|
|
89
|
+
|
|
90
|
+
## Works well with
|
|
91
|
+
|
|
92
|
+
- alfred-trust-validation (coverage verification)
|
|
93
|
+
- alfred-code-reviewer (Lua-specific review)
|
|
94
|
+
- cli-tool-expert (Lua scripting utilities)
|
|
95
|
+
|
|
96
|
+
## Best Practices
|
|
97
|
+
- Enable automatic validation by matching your linter with the language's official style guide.
|
|
98
|
+
- Fix test/build pipelines with reproducible commands in CI.
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
---
|
|
2
|
+
|
|
3
|
+
name: moai-lang-php
|
|
4
|
+
description: PHP best practices with PHPUnit, Composer, and PSR standards. Use when writing or reviewing PHP code in project workflows.
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# PHP Expert
|
|
11
|
+
|
|
12
|
+
## Skill Metadata
|
|
13
|
+
| Field | Value |
|
|
14
|
+
| ----- | ----- |
|
|
15
|
+
| Allowed tools | Read (read_file), Bash (terminal) |
|
|
16
|
+
| Auto-load | On demand when language keywords are detected |
|
|
17
|
+
| Trigger cues | PHP code discussions, framework guidance, or file extensions such as .php. |
|
|
18
|
+
| Tier | 3 |
|
|
19
|
+
|
|
20
|
+
## What it does
|
|
21
|
+
|
|
22
|
+
Provides PHP-specific expertise for TDD development, including PHPUnit testing, Composer package management, and PSR (PHP Standards Recommendations) compliance.
|
|
23
|
+
|
|
24
|
+
## When to use
|
|
25
|
+
|
|
26
|
+
- Engages when the conversation references PHP work, frameworks, or files like .php.
|
|
27
|
+
- "Writing PHP tests", "How to use PHPUnit", "PSR standard"
|
|
28
|
+
- Automatically invoked when working with PHP projects
|
|
29
|
+
- PHP SPEC implementation (`/alfred:2-run`)
|
|
30
|
+
|
|
31
|
+
## How it works
|
|
32
|
+
|
|
33
|
+
**TDD Framework**:
|
|
34
|
+
- **PHPUnit**: PHP testing framework
|
|
35
|
+
- **Mockery**: Mocking library
|
|
36
|
+
- **PHPSpec**: BDD-style testing (alternative)
|
|
37
|
+
- Test coverage with `phpunit --coverage-html`
|
|
38
|
+
|
|
39
|
+
**Code Quality**:
|
|
40
|
+
- **PHP_CodeSniffer**: PSR compliance checker
|
|
41
|
+
- **PHPStan**: Static analysis tool
|
|
42
|
+
- **PHP CS Fixer**: Code formatting
|
|
43
|
+
|
|
44
|
+
**Package Management**:
|
|
45
|
+
- **Composer**: Dependency management
|
|
46
|
+
- **composer.json**: Package configuration
|
|
47
|
+
- **Packagist**: Public package registry
|
|
48
|
+
|
|
49
|
+
**PSR Standards**:
|
|
50
|
+
- **PSR-1**: Basic coding standard
|
|
51
|
+
- **PSR-2/PSR-12**: Coding style guide
|
|
52
|
+
- **PSR-4**: Autoloading standard
|
|
53
|
+
- **PSR-7**: HTTP message interfaces
|
|
54
|
+
|
|
55
|
+
**Best Practices**:
|
|
56
|
+
- File ≤300 LOC, method ≤50 LOC
|
|
57
|
+
- Type declarations (PHP 7.4+)
|
|
58
|
+
- Namespaces for organization
|
|
59
|
+
- Dependency injection over global state
|
|
60
|
+
|
|
61
|
+
## Examples
|
|
62
|
+
```bash
|
|
63
|
+
vendor/bin/phpunit && vendor/bin/phpstan analyse
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
## Inputs
|
|
67
|
+
- Language-specific source directories (e.g. `src/`, `app/`).
|
|
68
|
+
- Language-specific build/test configuration files (e.g. `package.json`, `pyproject.toml`, `go.mod`).
|
|
69
|
+
- Relevant test suites and sample data.
|
|
70
|
+
|
|
71
|
+
## Outputs
|
|
72
|
+
- Test/lint execution plan tailored to the selected language.
|
|
73
|
+
- List of key language idioms and review checkpoints.
|
|
74
|
+
|
|
75
|
+
## Failure Modes
|
|
76
|
+
- When the language runtime or package manager is not installed.
|
|
77
|
+
- When the main language cannot be determined in a multilingual project.
|
|
78
|
+
|
|
79
|
+
## Dependencies
|
|
80
|
+
- Access to the project file is required using the Read/Grep tool.
|
|
81
|
+
- When used with `Skill("moai-foundation-langs")`, it is easy to share cross-language conventions.
|
|
82
|
+
|
|
83
|
+
## References
|
|
84
|
+
- PHP Manual. "PHP Documentation." https://www.php.net/manual/en/ (accessed 2025-03-29).
|
|
85
|
+
- PHPUnit. "PHPUnit Manual." https://phpunit.de/documentation.html (accessed 2025-03-29).
|
|
86
|
+
|
|
87
|
+
## Changelog
|
|
88
|
+
- 2025-03-29: Input/output/failure response/reference information for each language has been specified.
|
|
89
|
+
|
|
90
|
+
## Works well with
|
|
91
|
+
|
|
92
|
+
- alfred-trust-validation (coverage verification)
|
|
93
|
+
- alfred-code-reviewer (PHP-specific review)
|
|
94
|
+
- web-api-expert (Laravel/Symfony API development)
|
|
95
|
+
|
|
96
|
+
## Best Practices
|
|
97
|
+
- Enable automatic validation by matching your linter with the language's official style guide.
|
|
98
|
+
- Fix test/build pipelines with reproducible commands in CI.
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
---
|
|
2
|
+
|
|
3
|
+
name: moai-lang-python
|
|
4
|
+
description: Python best practices with pytest, mypy, ruff, black, and uv package management. Use when writing or reviewing Python code in project workflows.
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Python Expert
|
|
11
|
+
|
|
12
|
+
## Skill Metadata
|
|
13
|
+
| Field | Value |
|
|
14
|
+
| ----- | ----- |
|
|
15
|
+
| Allowed tools | Read (read_file), Bash (terminal) |
|
|
16
|
+
| Auto-load | On demand when language keywords are detected |
|
|
17
|
+
| Trigger cues | Python code discussions, framework guidance, or file extensions such as .py. |
|
|
18
|
+
| Tier | 3 |
|
|
19
|
+
|
|
20
|
+
## What it does
|
|
21
|
+
|
|
22
|
+
Provides Python-specific expertise for TDD development, including pytest testing, mypy type checking, ruff linting, black formatting, and modern uv package management.
|
|
23
|
+
|
|
24
|
+
## When to use
|
|
25
|
+
|
|
26
|
+
- Engages when the conversation references Python work, frameworks, or files like .py.
|
|
27
|
+
- “Writing Python tests”, “How to use pytest”, “Python type hints”
|
|
28
|
+
- Automatically invoked when working with Python projects
|
|
29
|
+
- Python SPEC implementation (`/alfred:2-run`)
|
|
30
|
+
|
|
31
|
+
## How it works
|
|
32
|
+
|
|
33
|
+
**TDD Framework**:
|
|
34
|
+
- **pytest**: Test discovery, fixtures, parametrize, markers
|
|
35
|
+
- **coverage.py**: Test coverage ≥85% enforcement
|
|
36
|
+
- **pytest-mock**: Mocking and patching
|
|
37
|
+
|
|
38
|
+
**Type Safety**:
|
|
39
|
+
- **mypy**: Static type checking with strict mode
|
|
40
|
+
- Type hints for function signatures, return types
|
|
41
|
+
- Generic types, Protocols, TypedDict
|
|
42
|
+
|
|
43
|
+
**Code Quality**:
|
|
44
|
+
- **ruff**: Fast Python linter (replaces flake8, isort, pylint)
|
|
45
|
+
- **black**: Opinionated code formatter
|
|
46
|
+
- Complexity checks (≤10), line length (≤88)
|
|
47
|
+
|
|
48
|
+
**Package Management**:
|
|
49
|
+
- **uv**: Modern, fast package installer
|
|
50
|
+
- `pyproject.toml` for project configuration
|
|
51
|
+
- Virtual environment management
|
|
52
|
+
|
|
53
|
+
**Best Practices**:
|
|
54
|
+
- File ≤300 LOC, function ≤50 LOC
|
|
55
|
+
- Meaningful variable names (no single letters except loops)
|
|
56
|
+
- Guard clauses over nested conditions
|
|
57
|
+
- Docstrings for public APIs
|
|
58
|
+
|
|
59
|
+
## Examples
|
|
60
|
+
```bash
|
|
61
|
+
python -m pytest && ruff check . && black --check .
|
|
62
|
+
```
|
|
63
|
+
|
|
64
|
+
## Inputs
|
|
65
|
+
- Language-specific source directories (e.g. `src/`, `app/`).
|
|
66
|
+
- Language-specific build/test configuration files (e.g. `package.json`, `pyproject.toml`, `go.mod`).
|
|
67
|
+
- Relevant test suites and sample data.
|
|
68
|
+
|
|
69
|
+
## Outputs
|
|
70
|
+
- Test/lint execution plan tailored to the selected language.
|
|
71
|
+
- List of key language idioms and review checkpoints.
|
|
72
|
+
|
|
73
|
+
## Failure Modes
|
|
74
|
+
- When the language runtime or package manager is not installed.
|
|
75
|
+
- When the main language cannot be determined in a multilingual project.
|
|
76
|
+
|
|
77
|
+
## Dependencies
|
|
78
|
+
- Access to the project file is required using the Read/Grep tool.
|
|
79
|
+
- When used with `Skill("moai-foundation-langs")`, it is easy to share cross-language conventions.
|
|
80
|
+
|
|
81
|
+
## References
|
|
82
|
+
- Python Software Foundation. "Python Developer's Guide." https://docs.python.org/3/ (accessed 2025-03-29).
|
|
83
|
+
- Pytest. "pytest Documentation." https://docs.pytest.org/en/stable/ (accessed 2025-03-29).
|
|
84
|
+
|
|
85
|
+
## Changelog
|
|
86
|
+
- 2025-03-29: Input/output/failure response/reference information for each language has been specified.
|
|
87
|
+
|
|
88
|
+
## Works well with
|
|
89
|
+
|
|
90
|
+
- alfred-trust-validation (coverage verification)
|
|
91
|
+
- alfred-code-reviewer (Python-specific review)
|
|
92
|
+
- alfred-debugger-pro (Python debugging)
|
|
93
|
+
|
|
94
|
+
## Best Practices
|
|
95
|
+
- Enable automatic validation by matching your linter with the language's official style guide.
|
|
96
|
+
- Fix test/build pipelines with reproducible commands in CI.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
|
|
3
|
+
name: moai-lang-r
|
|
4
|
+
description: R best practices with testthat, lintr, and data analysis patterns. Use when writing or reviewing R code in project workflows.
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# R Expert
|
|
11
|
+
|
|
12
|
+
## Skill Metadata
|
|
13
|
+
| Field | Value |
|
|
14
|
+
| ----- | ----- |
|
|
15
|
+
| Allowed tools | Read (read_file), Bash (terminal) |
|
|
16
|
+
| Auto-load | On demand when language keywords are detected |
|
|
17
|
+
| Trigger cues | R code discussions, framework guidance, or file extensions such as .r. |
|
|
18
|
+
| Tier | 3 |
|
|
19
|
+
|
|
20
|
+
## What it does
|
|
21
|
+
|
|
22
|
+
Provides R-specific expertise for TDD development, including testthat testing framework, lintr code linting, and statistical data analysis patterns.
|
|
23
|
+
|
|
24
|
+
## When to use
|
|
25
|
+
|
|
26
|
+
- Engages when the conversation references R work, frameworks, or files like .r.
|
|
27
|
+
- “Writing R tests”, “How to use testthat”, “Data analysis patterns”
|
|
28
|
+
- Automatically invoked when working with R projects
|
|
29
|
+
- R SPEC implementation (`/alfred:2-run`)
|
|
30
|
+
|
|
31
|
+
## How it works
|
|
32
|
+
|
|
33
|
+
**TDD Framework**:
|
|
34
|
+
- **testthat**: Unit testing framework
|
|
35
|
+
- **covr**: Test coverage tool
|
|
36
|
+
- **mockery**: Mocking library
|
|
37
|
+
- Test coverage ≥85% enforcement
|
|
38
|
+
|
|
39
|
+
**Code Quality**:
|
|
40
|
+
- **lintr**: Static code analysis
|
|
41
|
+
- **styler**: Code formatting
|
|
42
|
+
- **goodpractice**: R package best practices
|
|
43
|
+
|
|
44
|
+
**Package Management**:
|
|
45
|
+
- **devtools**: Package development tools
|
|
46
|
+
- **usethis**: Workflow automation
|
|
47
|
+
- **CRAN**: Official package repository
|
|
48
|
+
|
|
49
|
+
**Data Analysis Patterns**:
|
|
50
|
+
- **tidyverse**: Data manipulation (dplyr, ggplot2)
|
|
51
|
+
- **data.table**: High-performance data manipulation
|
|
52
|
+
- **Vectorization** over loops
|
|
53
|
+
- **Pipes** (%>%) for readable code
|
|
54
|
+
|
|
55
|
+
**Best Practices**:
|
|
56
|
+
- File ≤300 LOC, function ≤50 LOC
|
|
57
|
+
- Document functions with roxygen2
|
|
58
|
+
- Use meaningful variable names
|
|
59
|
+
- Avoid global variables
|
|
60
|
+
- Prefer functional programming
|
|
61
|
+
|
|
62
|
+
## Examples
|
|
63
|
+
```bash
|
|
64
|
+
Rscript -e 'devtools::test()'
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Inputs
|
|
68
|
+
- Language-specific source directories (e.g. `src/`, `app/`).
|
|
69
|
+
- Language-specific build/test configuration files (e.g. `package.json`, `pyproject.toml`, `go.mod`).
|
|
70
|
+
- Relevant test suites and sample data.
|
|
71
|
+
|
|
72
|
+
## Outputs
|
|
73
|
+
- Test/lint execution plan tailored to the selected language.
|
|
74
|
+
- List of key language idioms and review checkpoints.
|
|
75
|
+
|
|
76
|
+
## Failure Modes
|
|
77
|
+
- When the language runtime or package manager is not installed.
|
|
78
|
+
- When the main language cannot be determined in a multilingual project.
|
|
79
|
+
|
|
80
|
+
## Dependencies
|
|
81
|
+
- Access to the project file is required using the Read/Grep tool.
|
|
82
|
+
- When used with `Skill("moai-foundation-langs")`, it is easy to share cross-language conventions.
|
|
83
|
+
|
|
84
|
+
## References
|
|
85
|
+
- R Core Team. "R Language Definition." https://cran.r-project.org/manuals.html (accessed 2025-03-29).
|
|
86
|
+
- RStudio. "testthat Reference." https://testthat.r-lib.org/ (accessed 2025-03-29).
|
|
87
|
+
|
|
88
|
+
## Changelog
|
|
89
|
+
- 2025-03-29: Input/output/failure response/reference information for each language has been specified.
|
|
90
|
+
|
|
91
|
+
## Works well with
|
|
92
|
+
|
|
93
|
+
- alfred-trust-validation (coverage verification)
|
|
94
|
+
- alfred-code-reviewer (R-specific review)
|
|
95
|
+
- data-science-expert (statistical analysis)
|
|
96
|
+
|
|
97
|
+
## Best Practices
|
|
98
|
+
- Enable automatic validation by matching your linter with the language's official style guide.
|
|
99
|
+
- Fix test/build pipelines with reproducible commands in CI.
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
---
|
|
2
|
+
|
|
3
|
+
name: moai-lang-ruby
|
|
4
|
+
description: Ruby best practices with RSpec, RuboCop, Bundler, and Rails patterns. Use when writing or reviewing Ruby code in project workflows.
|
|
5
|
+
allowed-tools:
|
|
6
|
+
- Read
|
|
7
|
+
- Bash
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Ruby Expert
|
|
11
|
+
|
|
12
|
+
## Skill Metadata
|
|
13
|
+
| Field | Value |
|
|
14
|
+
| ----- | ----- |
|
|
15
|
+
| Allowed tools | Read (read_file), Bash (terminal) |
|
|
16
|
+
| Auto-load | On demand when language keywords are detected |
|
|
17
|
+
| Trigger cues | Ruby code discussions, framework guidance, or file extensions such as .rb. |
|
|
18
|
+
| Tier | 3 |
|
|
19
|
+
|
|
20
|
+
## What it does
|
|
21
|
+
|
|
22
|
+
Provides Ruby-specific expertise for TDD development, including RSpec BDD testing, RuboCop linting, Bundler package management, and Rails framework patterns.
|
|
23
|
+
|
|
24
|
+
## When to use
|
|
25
|
+
|
|
26
|
+
- Engages when the conversation references Ruby work, frameworks, or files like .rb.
|
|
27
|
+
- “Writing Ruby tests”, “How to use RSpec”, “Rails patterns”
|
|
28
|
+
- Automatically invoked when working with Ruby/Rails projects
|
|
29
|
+
- Ruby SPEC implementation (`/alfred:2-run`)
|
|
30
|
+
|
|
31
|
+
## How it works
|
|
32
|
+
|
|
33
|
+
**TDD Framework**:
|
|
34
|
+
- **RSpec**: Behavior-driven development (describe, context, it)
|
|
35
|
+
- **FactoryBot**: Test data factories
|
|
36
|
+
- **Capybara**: Integration testing for web apps
|
|
37
|
+
- Test coverage ≥85% with SimpleCov
|
|
38
|
+
|
|
39
|
+
**Code Quality**:
|
|
40
|
+
- **RuboCop**: Ruby linter and formatter
|
|
41
|
+
- **Reek**: Code smell detection
|
|
42
|
+
- **Brakeman**: Security vulnerability scanner (Rails)
|
|
43
|
+
|
|
44
|
+
**Package Management**:
|
|
45
|
+
- **Bundler**: Dependency management with Gemfile
|
|
46
|
+
- **RubyGems**: Package distribution
|
|
47
|
+
- Semantic versioning in gemspec
|
|
48
|
+
|
|
49
|
+
**Rails Patterns**:
|
|
50
|
+
- MVC architecture (Model-View-Controller)
|
|
51
|
+
- ActiveRecord for database interactions
|
|
52
|
+
- RESTful routing conventions
|
|
53
|
+
- Service objects for business logic
|
|
54
|
+
- Strong parameters for security
|
|
55
|
+
|
|
56
|
+
**Best Practices**:
|
|
57
|
+
- File ≤300 LOC, method ≤50 LOC
|
|
58
|
+
- Prefer symbols over strings for hash keys
|
|
59
|
+
- Use blocks and yielding for abstraction
|
|
60
|
+
- Duck typing over explicit type checking
|
|
61
|
+
|
|
62
|
+
## Examples
|
|
63
|
+
```bash
|
|
64
|
+
bundle exec rubocop && bundle exec rspec
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
## Inputs
|
|
68
|
+
- Language-specific source directories (e.g. `src/`, `app/`).
|
|
69
|
+
- Language-specific build/test configuration files (e.g. `package.json`, `pyproject.toml`, `go.mod`).
|
|
70
|
+
- Relevant test suites and sample data.
|
|
71
|
+
|
|
72
|
+
## Outputs
|
|
73
|
+
- Test/lint execution plan tailored to the selected language.
|
|
74
|
+
- List of key language idioms and review checkpoints.
|
|
75
|
+
|
|
76
|
+
## Failure Modes
|
|
77
|
+
- When the language runtime or package manager is not installed.
|
|
78
|
+
- When the main language cannot be determined in a multilingual project.
|
|
79
|
+
|
|
80
|
+
## Dependencies
|
|
81
|
+
- Access to the project file is required using the Read/Grep tool.
|
|
82
|
+
- When used with `Skill("moai-foundation-langs")`, it is easy to share cross-language conventions.
|
|
83
|
+
|
|
84
|
+
## References
|
|
85
|
+
- Ruby Lang. "Ruby Programming Language." https://www.ruby-lang.org/en/documentation/ (accessed 2025-03-29).
|
|
86
|
+
- RuboCop. "RuboCop Documentation." https://docs.rubocop.org/rubocop/ (accessed 2025-03-29).
|
|
87
|
+
|
|
88
|
+
## Changelog
|
|
89
|
+
- 2025-03-29: Input/output/failure response/reference information for each language has been specified.
|
|
90
|
+
|
|
91
|
+
## Works well with
|
|
92
|
+
|
|
93
|
+
- alfred-trust-validation (coverage verification)
|
|
94
|
+
- alfred-code-reviewer (Ruby-specific review)
|
|
95
|
+
- web-api-expert (Rails API development)
|
|
96
|
+
|
|
97
|
+
## Best Practices
|
|
98
|
+
- Enable automatic validation by matching your linter with the language's official style guide.
|
|
99
|
+
- Fix test/build pipelines with reproducible commands in CI.
|