@aslomon/effectum 0.3.4 → 0.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,257 @@
1
+ ---
2
+ name: mobile-developer
3
+ description: "Use this agent when building mobile applications with React Native, Flutter, Expo, or native iOS/Android. Invoke for cross-platform development, responsive design, app store compliance, mobile performance optimization, and platform-specific implementation patterns."
4
+ tools: Read, Write, Edit, Bash, Glob, Grep
5
+ model: sonnet
6
+ ---
7
+
8
+ You are a senior mobile developer specializing in cross-platform and native mobile application development. Your expertise spans React Native, Flutter, Expo, Swift/SwiftUI, and Kotlin/Jetpack Compose, with deep knowledge of mobile UX patterns, performance optimization, and app store guidelines.
9
+
10
+ When invoked:
11
+
12
+ 1. Query context manager for existing mobile architecture and platform targets
13
+ 2. Review project structure, navigation patterns, and state management
14
+ 3. Analyze platform-specific requirements and constraints
15
+ 4. Design following mobile-first principles and platform conventions
16
+
17
+ Mobile development checklist:
18
+
19
+ - Platform targets identified (iOS, Android, both)
20
+ - Navigation architecture defined
21
+ - State management approach chosen
22
+ - Offline support considered
23
+ - Push notifications planned
24
+ - Deep linking configured
25
+ - App permissions documented
26
+ - Performance budgets set
27
+
28
+ React Native expertise:
29
+
30
+ - New Architecture (Fabric, TurboModules)
31
+ - Metro bundler configuration
32
+ - Native module bridging
33
+ - Hermes engine optimization
34
+ - CodePush / OTA updates
35
+ - React Navigation patterns
36
+ - Reanimated animations
37
+ - Gesture handler integration
38
+
39
+ Flutter expertise:
40
+
41
+ - Widget composition patterns
42
+ - Riverpod / Bloc state management
43
+ - Platform channels
44
+ - Custom render objects
45
+ - Dart isolates for compute
46
+ - Material 3 / Cupertino widgets
47
+ - Custom painting and effects
48
+ - Build flavors and environments
49
+
50
+ Expo expertise:
51
+
52
+ - Managed vs bare workflow
53
+ - EAS Build and Submit
54
+ - Expo Router navigation
55
+ - Config plugins
56
+ - Custom dev clients
57
+ - Prebuild architecture
58
+ - Over-the-air updates
59
+ - Module API patterns
60
+
61
+ Native iOS (Swift/SwiftUI):
62
+
63
+ - SwiftUI view composition
64
+ - Combine / async-await
65
+ - Core Data / SwiftData
66
+ - UIKit interop
67
+ - App Intents and Shortcuts
68
+ - WidgetKit extensions
69
+ - StoreKit 2 in-app purchases
70
+ - XCTest and UI testing
71
+
72
+ Native Android (Kotlin):
73
+
74
+ - Jetpack Compose
75
+ - Kotlin coroutines / Flow
76
+ - Room database
77
+ - Hilt dependency injection
78
+ - WorkManager background tasks
79
+ - Material Design 3
80
+ - Play Billing Library
81
+ - Instrumented testing
82
+
83
+ Responsive design:
84
+
85
+ - Adaptive layouts for phones and tablets
86
+ - Safe area handling
87
+ - Dynamic type / font scaling
88
+ - Orientation changes
89
+ - Foldable device support
90
+ - Platform-specific spacing
91
+ - Accessibility sizing
92
+ - Dark mode support
93
+
94
+ Performance optimization:
95
+
96
+ - Startup time optimization
97
+ - List virtualization (FlatList, RecyclerView)
98
+ - Image caching and lazy loading
99
+ - Bundle size reduction
100
+ - Memory leak detection
101
+ - Frame rate monitoring
102
+ - Network request batching
103
+ - Background task management
104
+
105
+ App store guidelines:
106
+
107
+ - Apple App Store Review Guidelines
108
+ - Google Play Store policies
109
+ - Privacy policy requirements
110
+ - Data collection disclosure
111
+ - In-app purchase rules
112
+ - Content rating compliance
113
+ - Accessibility requirements
114
+ - Screenshot and metadata preparation
115
+
116
+ Security considerations:
117
+
118
+ - Secure storage (Keychain, Keystore)
119
+ - Certificate pinning
120
+ - Biometric authentication
121
+ - JWT token management
122
+ - Code obfuscation
123
+ - Jailbreak/root detection
124
+ - Secure networking (TLS)
125
+ - Data encryption at rest
126
+
127
+ ## Communication Protocol
128
+
129
+ ### Mobile Architecture Assessment
130
+
131
+ Initialize mobile development by understanding the project scope and platform targets.
132
+
133
+ Architecture context request:
134
+
135
+ ```json
136
+ {
137
+ "requesting_agent": "mobile-developer",
138
+ "request_type": "get_mobile_context",
139
+ "payload": {
140
+ "query": "Mobile development context needed: target platforms, framework choice, navigation requirements, offline needs, push notification strategy, and performance constraints."
141
+ }
142
+ }
143
+ ```
144
+
145
+ ## Development Workflow
146
+
147
+ Execute mobile development through systematic phases:
148
+
149
+ ### 1. Platform Analysis
150
+
151
+ Understand target platforms and technical constraints.
152
+
153
+ Analysis framework:
154
+
155
+ - Platform target matrix
156
+ - Device compatibility range
157
+ - OS version support
158
+ - Feature parity requirements
159
+ - Platform-specific features
160
+ - Third-party SDK needs
161
+ - Build and distribution plan
162
+ - Testing device coverage
163
+
164
+ Platform evaluation:
165
+
166
+ - Cross-platform vs native trade-offs
167
+ - Performance requirements
168
+ - Native API access needs
169
+ - Team expertise alignment
170
+ - Time-to-market constraints
171
+ - Maintenance considerations
172
+ - User experience expectations
173
+ - Budget and resource planning
174
+
175
+ ### 2. Implementation Phase
176
+
177
+ Build mobile features with platform awareness.
178
+
179
+ Implementation approach:
180
+
181
+ - Component architecture design
182
+ - Navigation flow implementation
183
+ - State management setup
184
+ - API integration layer
185
+ - Offline data strategy
186
+ - Push notification setup
187
+ - Deep link configuration
188
+ - Platform-specific adaptations
189
+
190
+ Progress reporting:
191
+
192
+ ```json
193
+ {
194
+ "agent": "mobile-developer",
195
+ "status": "implementing",
196
+ "mobile_progress": {
197
+ "screens": 12,
198
+ "navigation_flows": 4,
199
+ "api_integrations": 8,
200
+ "platform_coverage": "iOS + Android",
201
+ "test_coverage": "75%"
202
+ }
203
+ }
204
+ ```
205
+
206
+ ### 3. Quality and Distribution
207
+
208
+ Ensure app quality and prepare for distribution.
209
+
210
+ Quality checklist:
211
+
212
+ - All screens responsive
213
+ - Accessibility audit passed
214
+ - Performance benchmarks met
215
+ - Offline mode tested
216
+ - Push notifications working
217
+ - Deep links verified
218
+ - App store screenshots ready
219
+ - Privacy compliance verified
220
+
221
+ Delivery notification:
222
+ "Mobile development completed. Built cross-platform application with 12 screens, offline support, push notifications, and biometric authentication. Performance: cold start < 2s, 60fps scrolling. Ready for App Store and Play Store submission."
223
+
224
+ Testing strategies:
225
+
226
+ - Unit tests for business logic
227
+ - Component snapshot tests
228
+ - Integration tests for flows
229
+ - E2E tests (Detox, Maestro)
230
+ - Device farm testing
231
+ - Accessibility testing
232
+ - Performance profiling
233
+ - Beta distribution (TestFlight, Firebase)
234
+
235
+ CI/CD for mobile:
236
+
237
+ - Fastlane automation
238
+ - EAS Build pipelines
239
+ - Code signing management
240
+ - Version bump automation
241
+ - Beta distribution
242
+ - Store submission automation
243
+ - Release notes generation
244
+ - Crash monitoring setup
245
+
246
+ Integration with other agents:
247
+
248
+ - Collaborate with ui-designer on mobile UI patterns
249
+ - Work with backend-developer on API contracts
250
+ - Coordinate with security-engineer on mobile security
251
+ - Partner with test-automator on mobile testing strategy
252
+ - Consult performance-engineer on mobile performance
253
+ - Sync with devops-engineer on CI/CD pipelines
254
+ - Align with api-designer on mobile-optimized endpoints
255
+ - Engage fullstack-developer on shared logic
256
+
257
+ Always prioritize user experience, platform conventions, performance, and accessibility while delivering high-quality mobile applications that meet app store requirements.
@@ -72,6 +72,10 @@
72
72
  | `/ralph-loop` | Full Auto | Iterative autonomous implementation |
73
73
 
74
74
 
75
+ ## Available CLI Tools
76
+
77
+ {{AVAILABLE_TOOLS}}
78
+
75
79
  ## Context7 — Always Use for Research
76
80
 
77
81
  - Always use Context7 MCP (`resolve_library_id` -> `get_library_docs`) when:
@@ -96,6 +100,8 @@ The following hooks run automatically. Do NOT duplicate their behavior:
96
100
  - **Guardrails Injection**: At session start and after compaction, `~/.claude/guardrails.md` (global) and `$PROJECT/.claude/guardrails.md` (project) are loaded. Follow them strictly.
97
101
  - **Transcript Backup**: Transcripts are backed up before context compaction to `.claude/backups/`.
98
102
  - **Protected Files**: `.env`, `.env.local`, `.env.production`, `secrets/`, `.git/`, lock files cannot be written to. Use Bash for env file operations if absolutely needed.
103
+ - **Secret Detection**: Before `git commit` and `git push`, staged changes are scanned for API keys, tokens, and passwords. Blocked if secrets found.
104
+ - **TDD Enforcement**: Before stopping, checks that test files were modified alongside source files. Blocks if source changed without tests.
99
105
  - **Destructive Command Blocker**: `rm -rf /`, `DROP TABLE`, `--force push`, `reset --hard` are blocked.
100
106
  - **Desktop Notifications**: User gets OS notifications on permission prompts and task completion.
101
107
 
@@ -71,6 +71,11 @@
71
71
  "type": "command",
72
72
  "command": "bash -c 'CMD=$(jq -r \".tool_input.command\" <<< \"$(cat)\"); if echo \"$CMD\" | grep -qE \"^git commit\"; then MSG=$(echo \"$CMD\" | grep -oP \"(?<=-m \\\")[^\\\"]+|(?<=-m \\x27)[^\\x27]+\" || echo \"\"); if [ -n \"$MSG\" ] && [ ${#MSG} -lt 10 ]; then echo \"Commit message too short (min 10 chars). Be descriptive.\" >&2; exit 2; fi; fi; exit 0'",
73
73
  "statusMessage": "Checking commit message..."
74
+ },
75
+ {
76
+ "type": "command",
77
+ "command": "bash -c 'CMD=$(jq -r \".tool_input.command\" <<< \"$(cat)\"); if echo \"$CMD\" | grep -qE \"^git (commit|push)\"; then DIFF=$(git diff --cached --diff-filter=ACM 2>/dev/null || git diff HEAD 2>/dev/null); if echo \"$DIFF\" | grep -qEi \"(sk-[a-zA-Z0-9]{20,}|sk_live_|sk_test_|AKIA[A-Z0-9]{16}|ghp_[a-zA-Z0-9]{36}|gho_[a-zA-Z0-9]{36}|glpat-[a-zA-Z0-9-]{20}|xox[bpras]-[a-zA-Z0-9-]+|password\\s*[:=]\\s*[\\x27\\\"][^\\x27\\\"]{8,})\"; then echo \"Potential secret detected in staged changes! Review before committing.\" >&2; exit 2; fi; fi; exit 0'",
78
+ "statusMessage": "Scanning for secrets..."
74
79
  }
75
80
  ]
76
81
  }
@@ -130,6 +135,12 @@
130
135
  "timeout": 30,
131
136
  "statusMessage": "Verifying work completion..."
132
137
  },
138
+ {
139
+ "type": "prompt",
140
+ "prompt": "Check if tests were written for code changes. Run: git diff --name-only HEAD 2>/dev/null\n\nAnalyze the changed files:\n1. Identify source code files (not config, not docs, not tests)\n2. Check if corresponding test files were also changed or created\n3. If source files changed but NO test files changed, respond {\"ok\": false, \"reason\": \"Source files were modified but no tests were written. Write tests before stopping.\"}\n4. If tests exist for the changes, or only config/docs changed, respond {\"ok\": true}\n5. If stop_hook_active is true in input, be lenient — only block for completely untested new features.\n\nContext: $ARGUMENTS",
141
+ "timeout": 30,
142
+ "statusMessage": "Checking test coverage..."
143
+ },
133
144
  {
134
145
  "type": "agent",
135
146
  "prompt": "Check if meaningful code changes were made in this session by running: git diff --stat HEAD 2>/dev/null\n\nIf there are staged or unstaged changes to source code files (not just config/formatting):\n1. Read the current CHANGELOG.md if it exists\n2. Add entries under [Unreleased] following Keep a Changelog format (Added/Changed/Fixed/Removed)\n3. If CHANGELOG.md doesn't exist, create it with a proper header and the current changes\n\nIf changes are trivial (only formatting, only comments, only config), skip and respond {\"ok\": true}.\nIf stop_hook_active is true, respond {\"ok\": true} immediately — do not update CHANGELOG on second pass.\n\nContext: $ARGUMENTS",
@@ -0,0 +1,112 @@
1
+ {
2
+ "$schema": "https://json-schema.org/draft/2020-12/schema",
3
+ "title": "Effectum Tool Definition",
4
+ "description": "Schema for tool definition files in system/tools/. Each file defines tools for a specific stack or category.",
5
+ "type": "object",
6
+ "required": ["tools"],
7
+ "properties": {
8
+ "name": {
9
+ "type": "string",
10
+ "description": "Human-readable name for this tool set (e.g., 'Foundation Tools')"
11
+ },
12
+ "description": {
13
+ "type": "string",
14
+ "description": "Brief description of when these tools are used"
15
+ },
16
+ "tools": {
17
+ "type": "array",
18
+ "items": {
19
+ "type": "object",
20
+ "required": [
21
+ "key",
22
+ "bin",
23
+ "displayName",
24
+ "category",
25
+ "why",
26
+ "priority"
27
+ ],
28
+ "properties": {
29
+ "key": {
30
+ "type": "string",
31
+ "description": "Unique identifier for the tool (e.g., 'git', 'supabase')"
32
+ },
33
+ "bin": {
34
+ "type": "string",
35
+ "description": "Binary name to check in PATH (e.g., 'git', 'supabase')"
36
+ },
37
+ "displayName": {
38
+ "type": "string",
39
+ "description": "Human-readable name (e.g., 'Supabase CLI')"
40
+ },
41
+ "category": {
42
+ "type": "string",
43
+ "enum": ["system", "foundation", "stack", "optional"],
44
+ "description": "Tool category: system (OS-level), foundation (always needed), stack (stack-specific), optional (nice-to-have)"
45
+ },
46
+ "why": {
47
+ "type": "string",
48
+ "description": "Human-readable reason why this tool is needed"
49
+ },
50
+ "priority": {
51
+ "type": "integer",
52
+ "minimum": 0,
53
+ "maximum": 10,
54
+ "description": "Installation priority (0 = highest, 10 = lowest). Determines install order."
55
+ },
56
+ "autoInstall": {
57
+ "type": "boolean",
58
+ "default": true,
59
+ "description": "If false, tool is recommended with a link but not auto-installed (e.g., Docker, Xcode)"
60
+ },
61
+ "install": {
62
+ "type": "object",
63
+ "properties": {
64
+ "darwin": {
65
+ "type": "string",
66
+ "description": "macOS install command"
67
+ },
68
+ "linux": {
69
+ "type": "string",
70
+ "description": "Linux install command"
71
+ },
72
+ "all": {
73
+ "type": "string",
74
+ "description": "Cross-platform install command"
75
+ }
76
+ },
77
+ "description": "Platform-specific install commands. 'all' is used as fallback."
78
+ },
79
+ "check": {
80
+ "type": "string",
81
+ "description": "Command to verify the tool is working (e.g., 'git --version'). Falls back to 'which <bin>'."
82
+ },
83
+ "manualUrl": {
84
+ "type": "string",
85
+ "format": "uri",
86
+ "description": "URL for manual installation instructions (used when autoInstall is false)"
87
+ },
88
+ "auth": {
89
+ "type": "object",
90
+ "properties": {
91
+ "check": {
92
+ "type": "string",
93
+ "description": "Command to check auth status (exit 0 = authenticated)"
94
+ },
95
+ "setup": {
96
+ "type": "string",
97
+ "description": "Command to set up authentication"
98
+ },
99
+ "url": {
100
+ "type": "string",
101
+ "format": "uri",
102
+ "description": "URL where user can create tokens/credentials"
103
+ }
104
+ },
105
+ "required": ["check", "setup"],
106
+ "description": "Authentication configuration. Omit if tool needs no auth."
107
+ }
108
+ }
109
+ }
110
+ }
111
+ }
112
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "Foundation Tools",
3
+ "description": "Always-required tools regardless of stack. Loaded for every project.",
4
+ "tools": [
5
+ {
6
+ "key": "git",
7
+ "bin": "git",
8
+ "displayName": "Git",
9
+ "category": "foundation",
10
+ "why": "Version control — required for all projects",
11
+ "priority": 0,
12
+ "autoInstall": true,
13
+ "install": {
14
+ "darwin": "xcode-select --install",
15
+ "linux": "sudo apt install -y git"
16
+ },
17
+ "check": "git --version",
18
+ "auth": {
19
+ "check": "git config user.name && git config user.email",
20
+ "setup": "git config --global user.name \"Your Name\" && git config --global user.email \"you@example.com\""
21
+ }
22
+ },
23
+ {
24
+ "key": "gh",
25
+ "bin": "gh",
26
+ "displayName": "GitHub CLI",
27
+ "category": "foundation",
28
+ "why": "GitHub: Issues, PRs, Code Search, CI status",
29
+ "priority": 1,
30
+ "autoInstall": true,
31
+ "install": {
32
+ "darwin": "brew install gh",
33
+ "linux": "sudo apt install -y gh"
34
+ },
35
+ "check": "gh --version",
36
+ "auth": {
37
+ "check": "gh auth status",
38
+ "setup": "gh auth login",
39
+ "url": "https://github.com/settings/tokens"
40
+ }
41
+ },
42
+ {
43
+ "key": "claude",
44
+ "bin": "claude",
45
+ "displayName": "Claude Code",
46
+ "category": "foundation",
47
+ "why": "AI coding agent — the core of the autonomous workflow",
48
+ "priority": 0,
49
+ "autoInstall": true,
50
+ "install": {
51
+ "all": "npm i -g @anthropic-ai/claude-code"
52
+ },
53
+ "check": "claude --version"
54
+ }
55
+ ]
56
+ }
@@ -0,0 +1,20 @@
1
+ {
2
+ "name": "Generic Tools",
3
+ "description": "Minimal optional tools for generic or undetected stacks.",
4
+ "tools": [
5
+ {
6
+ "key": "jq",
7
+ "bin": "jq",
8
+ "displayName": "jq",
9
+ "category": "optional",
10
+ "why": "JSON processing on the command line",
11
+ "priority": 5,
12
+ "autoInstall": true,
13
+ "install": {
14
+ "darwin": "brew install jq",
15
+ "linux": "sudo apt install -y jq"
16
+ },
17
+ "check": "jq --version"
18
+ }
19
+ ]
20
+ }
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "Next.js + Supabase Tools",
3
+ "description": "Tools for Next.js with Supabase stack projects.",
4
+ "tools": [
5
+ {
6
+ "key": "pnpm",
7
+ "bin": "pnpm",
8
+ "displayName": "pnpm",
9
+ "category": "stack",
10
+ "why": "Fast, disk-efficient package manager for Node.js",
11
+ "priority": 1,
12
+ "autoInstall": true,
13
+ "install": {
14
+ "all": "npm i -g pnpm"
15
+ },
16
+ "check": "pnpm --version"
17
+ },
18
+ {
19
+ "key": "supabase",
20
+ "bin": "supabase",
21
+ "displayName": "Supabase CLI",
22
+ "category": "stack",
23
+ "why": "Database migrations, type generation, edge functions",
24
+ "priority": 2,
25
+ "autoInstall": true,
26
+ "install": {
27
+ "darwin": "brew install supabase/tap/supabase",
28
+ "linux": "npm i -g supabase"
29
+ },
30
+ "check": "supabase --version",
31
+ "auth": {
32
+ "check": "supabase projects list 2>&1 | head -1",
33
+ "setup": "supabase login",
34
+ "url": "https://supabase.com/dashboard/account/tokens"
35
+ }
36
+ },
37
+ {
38
+ "key": "vercel",
39
+ "bin": "vercel",
40
+ "displayName": "Vercel CLI",
41
+ "category": "stack",
42
+ "why": "Deployment to Vercel",
43
+ "priority": 3,
44
+ "autoInstall": true,
45
+ "install": {
46
+ "all": "npm i -g vercel"
47
+ },
48
+ "check": "vercel --version",
49
+ "auth": {
50
+ "check": "vercel whoami",
51
+ "setup": "vercel login",
52
+ "url": "https://vercel.com/account/tokens"
53
+ }
54
+ }
55
+ ]
56
+ }
@@ -0,0 +1,47 @@
1
+ {
2
+ "name": "Python + FastAPI Tools",
3
+ "description": "Tools for Python with FastAPI stack projects.",
4
+ "tools": [
5
+ {
6
+ "key": "uv",
7
+ "bin": "uv",
8
+ "displayName": "uv",
9
+ "category": "stack",
10
+ "why": "Fast Python package management",
11
+ "priority": 1,
12
+ "autoInstall": true,
13
+ "install": {
14
+ "all": "curl -LsSf https://astral.sh/uv/install.sh | sh"
15
+ },
16
+ "check": "uv --version"
17
+ },
18
+ {
19
+ "key": "ruff",
20
+ "bin": "ruff",
21
+ "displayName": "Ruff",
22
+ "category": "stack",
23
+ "why": "Python linting and formatting",
24
+ "priority": 2,
25
+ "autoInstall": true,
26
+ "install": {
27
+ "all": "pip install ruff"
28
+ },
29
+ "check": "ruff --version"
30
+ },
31
+ {
32
+ "key": "docker",
33
+ "bin": "docker",
34
+ "displayName": "Docker",
35
+ "category": "stack",
36
+ "why": "Container management, local dev environment",
37
+ "priority": 5,
38
+ "autoInstall": false,
39
+ "install": {
40
+ "darwin": "brew install --cask docker",
41
+ "linux": "sudo apt install -y docker.io"
42
+ },
43
+ "check": "docker --version",
44
+ "manualUrl": "https://docs.docker.com/get-docker/"
45
+ }
46
+ ]
47
+ }
@@ -0,0 +1,33 @@
1
+ {
2
+ "name": "Swift / iOS Tools",
3
+ "description": "Tools for Swift and iOS/macOS development.",
4
+ "tools": [
5
+ {
6
+ "key": "xcode-select",
7
+ "bin": "xcodebuild",
8
+ "displayName": "Xcode Command Line Tools",
9
+ "category": "stack",
10
+ "why": "iOS/macOS build toolchain",
11
+ "priority": 0,
12
+ "autoInstall": false,
13
+ "install": {
14
+ "darwin": "xcode-select --install"
15
+ },
16
+ "check": "xcodebuild -version",
17
+ "manualUrl": "https://developer.apple.com/xcode/"
18
+ },
19
+ {
20
+ "key": "swift-format",
21
+ "bin": "swift-format",
22
+ "displayName": "swift-format",
23
+ "category": "stack",
24
+ "why": "Swift code formatting",
25
+ "priority": 2,
26
+ "autoInstall": true,
27
+ "install": {
28
+ "darwin": "brew install swift-format"
29
+ },
30
+ "check": "swift-format --version"
31
+ }
32
+ ]
33
+ }