mobile-best-practices 1.0.0 → 1.1.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,28 @@
1
+ ---
2
+ description: Analyze mobile app for performance issues and optimization opportunities
3
+ ---
4
+
5
+ Perform a comprehensive performance analysis of my mobile application:
6
+
7
+ 1. **Identify Performance Issues**:
8
+ - Check app startup time (cold start, warm start)
9
+ - Analyze UI rendering performance (recompositions, frame drops)
10
+ - Review list/grid rendering (LazyColumn, FlatList, UICollectionView)
11
+ - Check image loading and caching
12
+ - Review memory usage and potential leaks
13
+ - Analyze network efficiency
14
+ - Check battery consumption patterns
15
+
16
+ 2. **Review Against Performance Best Practices**:
17
+ - Use the mobile-best-practices skill to search performance domain
18
+ - Check platform-specific optimization guidelines
19
+ - Identify common anti-patterns
20
+
21
+ 3. **Generate Performance Report**:
22
+ - List all performance issues found with severity ratings
23
+ - Provide optimization recommendations
24
+ - Include code examples for improvements
25
+ - Suggest profiling tools and monitoring strategies
26
+ - Reference relevant documentation
27
+
28
+ Focus on $ARGUMENTS if provided, otherwise analyze the entire project.
@@ -0,0 +1,26 @@
1
+ ---
2
+ description: Audit mobile app for security vulnerabilities and best practices
3
+ ---
4
+
5
+ Perform a comprehensive security audit of my mobile application:
6
+
7
+ 1. **Scan for Common Vulnerabilities**:
8
+ - Check for hardcoded API keys, secrets, or credentials
9
+ - Review data storage (SharedPreferences, UserDefaults, Keychain)
10
+ - Verify SSL/TLS certificate pinning implementation
11
+ - Check for sensitive data in logs or crash reports
12
+ - Review authentication and session management
13
+ - Check for root/jailbreak detection
14
+
15
+ 2. **Review Against Security Best Practices**:
16
+ - Use the mobile-best-practices skill to search security domain
17
+ - Cross-reference findings with OWASP Mobile Top 10
18
+ - Check platform-specific security guidelines
19
+
20
+ 3. **Generate Security Report**:
21
+ - List all vulnerabilities found (high/medium/low severity)
22
+ - Provide remediation steps for each issue
23
+ - Include code examples of secure implementations
24
+ - Reference relevant documentation
25
+
26
+ Focus on $ARGUMENTS if provided, otherwise audit the entire project.
@@ -0,0 +1,41 @@
1
+ ---
2
+ description: Set up a new Android project with best practices and modern architecture
3
+ ---
4
+
5
+ Set up a new Android project following mobile development best practices:
6
+
7
+ 1. **Determine Project Requirements**:
8
+ - Ask about app type: $ARGUMENTS (e.g., e-commerce, banking, social media)
9
+ - Recommended architecture for the app type
10
+ - Required features and tech stack
11
+
12
+ 2. **Use Mobile Best Practices Skill**:
13
+ - Search reasoning domain for product-type recommendations
14
+ - Search architecture domain for recommended patterns
15
+ - Search snippet domain for code templates
16
+ - Search gradle domain for dependency declarations
17
+
18
+ 3. **Set Up Project Structure**:
19
+ - Create recommended folder structure (Clean Architecture layers)
20
+ - Set up dependency injection (Hilt)
21
+ - Configure navigation (Navigation Compose)
22
+ - Set up network layer (Retrofit + OkHttp)
23
+ - Configure database (Room)
24
+ - Set up image loading (Coil)
25
+ - Create base UI theme (Material3)
26
+
27
+ 4. **Add Development Tools**:
28
+ - Configure Gradle version catalog
29
+ - Set up code quality tools (Detekt, Ktlint)
30
+ - Add testing dependencies (JUnit, Mockk, Turbine)
31
+ - Configure build variants and flavors
32
+
33
+ 5. **Generate Essential Code**:
34
+ - Base ViewModel and repository templates
35
+ - Network module setup
36
+ - Database setup
37
+ - DI modules
38
+ - Navigation graph
39
+ - Theme and design system
40
+
41
+ Provide a complete, production-ready project structure with all dependencies and boilerplate code.
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAMA,wBAAsB,WAAW,CAAC,OAAO,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAyF/G"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAMA,wBAAsB,WAAW,CAAC,OAAO,EAAE;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAmI/G"}
@@ -2,7 +2,7 @@ import chalk from 'chalk';
2
2
  import ora from 'ora';
3
3
  import prompts from 'prompts';
4
4
  import { SUPPORTED_PLATFORMS } from '../types/index.js';
5
- import { installForPlatform } from '../utils/index.js';
5
+ import { installForPlatform, updateGitignore } from '../utils/index.js';
6
6
  export async function initCommand(options) {
7
7
  let aiPlatform = options.ai;
8
8
  let mobilePlatform = options.platform;
@@ -66,28 +66,65 @@ export async function initCommand(options) {
66
66
  spinner.fail(`Failed for ${chalk.red(p)}: ${error.message}`);
67
67
  }
68
68
  }
69
+ // Update .gitignore to exclude AI assistant directories
70
+ try {
71
+ updateGitignore(projectDir, aiPlatform);
72
+ }
73
+ catch (error) {
74
+ // Non-critical error, just log it
75
+ console.log(chalk.yellow(`Note: Could not update .gitignore: ${error.message}`));
76
+ }
69
77
  console.log();
70
- console.log(chalk.green('Mobile Best Practices skill installed successfully!'));
71
- console.log(chalk.dim(`Platform: ${mobilePlatform}`));
78
+ console.log(chalk.green('Mobile Best Practices skill installed successfully!'));
79
+ console.log(chalk.dim(` Platform: ${mobilePlatform}`));
80
+ // Show where files were installed
81
+ const installPaths = aiPlatforms.map(p => {
82
+ const dirName = p === 'claude' ? '.claude' :
83
+ p === 'cursor' ? '.cursor' :
84
+ p === 'windsurf' ? '.windsurf' :
85
+ p === 'copilot' ? '.github/copilot' :
86
+ p === 'opencode' ? '.opencode' :
87
+ `.${p}`;
88
+ return `${dirName}/skills/mobile-best-practices/`;
89
+ });
90
+ console.log(chalk.dim(` Installed to: ${installPaths.join(', ')}`));
72
91
  console.log();
73
- console.log(chalk.dim('Usage:'));
74
- if (aiPlatform === 'claude' || aiPlatform === 'all') {
75
- console.log(chalk.dim(' Just chat naturally with Claude Code:'));
76
- if (mobilePlatform === 'android') {
77
- console.log(chalk.white(' "Build a product list screen with Compose"'));
78
- }
79
- else if (mobilePlatform === 'ios') {
80
- console.log(chalk.white(' "Build a settings screen with SwiftUI"'));
81
- }
82
- else if (mobilePlatform === 'flutter') {
83
- console.log(chalk.white(' "Build a product list with BLoC"'));
84
- }
85
- else if (mobilePlatform === 'react-native') {
86
- console.log(chalk.white(' "Build a product list with React Navigation"'));
87
- }
88
- else {
89
- console.log(chalk.white(' "Build a product list screen for my e-commerce app"'));
90
- }
92
+ console.log(chalk.cyan('How to use:'));
93
+ console.log(chalk.dim(' No commands needed - just chat naturally with your AI assistant!'));
94
+ console.log(chalk.dim(' The AI will automatically search 1,738 best practices as you work.'));
95
+ console.log();
96
+ console.log(chalk.yellow('Examples:'));
97
+ if (mobilePlatform === 'android' || mobilePlatform === 'all') {
98
+ console.log(chalk.white(' • "Review my project for security issues"'));
99
+ console.log(chalk.white(' "Build a login screen with Compose"'));
100
+ console.log(chalk.white(' • "Check my code for performance problems"'));
101
+ }
102
+ else if (mobilePlatform === 'ios') {
103
+ console.log(chalk.white(' • "Review my iOS app for security vulnerabilities"'));
104
+ console.log(chalk.white(' • "Build a settings screen with SwiftUI"'));
105
+ console.log(chalk.white(' "Check my app for accessibility issues"'));
106
+ }
107
+ else if (mobilePlatform === 'flutter') {
108
+ console.log(chalk.white(' "Audit my Flutter app for OWASP issues"'));
109
+ console.log(chalk.white(' • "Build a product list with BLoC"'));
110
+ console.log(chalk.white(' • "Find performance bottlenecks in my app"'));
111
+ }
112
+ else if (mobilePlatform === 'react-native') {
113
+ console.log(chalk.white(' • "Review my React Native app for anti-patterns"'));
114
+ console.log(chalk.white(' • "Build a product list with React Navigation"'));
115
+ console.log(chalk.white(' • "Optimize my FlatList performance"'));
116
+ }
117
+ console.log();
118
+ console.log(chalk.dim('Tip: The skill works invisibly - no slash commands, no special syntax!'));
119
+ // Add slash command info for Claude Code and Cursor
120
+ if (aiPlatform === 'claude' || aiPlatform === 'cursor' || aiPlatform === 'all') {
121
+ console.log();
122
+ console.log(chalk.cyan('Slash commands (Claude Code & Cursor):'));
123
+ console.log(chalk.dim(' Type / to see available commands:'));
124
+ console.log(chalk.white(' • /mobile-best-practices - Main skill'));
125
+ console.log(chalk.white(' • /mobile-security-audit - Security vulnerability scan'));
126
+ console.log(chalk.white(' • /mobile-performance-check - Performance analysis'));
127
+ console.log(chalk.white(' • /mobile-setup-android - New Android project setup'));
91
128
  }
92
129
  console.log();
93
130
  }
@@ -1 +1 @@
1
- {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
@@ -6,4 +6,5 @@ export declare function ensureDir(dir: string): void;
6
6
  export declare function copyDir(src: string, dest: string): void;
7
7
  export declare function generateSkillFile(config: PlatformConfig, targetDir: string, mobilePlatform?: MobilePlatform): void;
8
8
  export declare function installForPlatform(platform: string, projectDir: string, mobilePlatform?: MobilePlatform): void;
9
+ export declare function updateGitignore(projectDir: string, platform: string): void;
9
10
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKxE,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAMnE;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAI3C;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAGvD;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,EACjB,cAAc,GAAE,cAAsB,GACrC,IAAI,CA2CN;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,cAAc,GAAE,cAAsB,GACrC,IAAI,CA+CN"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAKxE,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,eAAe,IAAI,MAAM,CAExC;AAED,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc,CAMnE;AAED,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAI3C;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAGvD;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,SAAS,EAAE,MAAM,EACjB,cAAc,GAAE,cAAsB,GACrC,IAAI,CA2CN;AAED,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,EAChB,UAAU,EAAE,MAAM,EAClB,cAAc,GAAE,cAAsB,GACrC,IAAI,CA0DN;AAED,wBAAgB,eAAe,CAAC,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAuE1E"}
@@ -69,6 +69,16 @@ export function installForPlatform(platform, projectDir, mobilePlatform = 'all')
69
69
  copyDir(join(assetsDir, 'scripts'), join(targetDir, 'scripts'));
70
70
  copyDir(join(assetsDir, 'references'), join(targetDir, 'references'));
71
71
  generateSkillFile(config, targetDir, mobilePlatform);
72
+ // Copy custom slash commands for Claude Code and Cursor
73
+ if (platform === 'claude' || platform === 'cursor') {
74
+ const commandsDir = join(assetsDir, 'commands');
75
+ if (existsSync(commandsDir)) {
76
+ const targetCommandsDir = platform === 'claude'
77
+ ? join(projectDir, '.claude', 'commands')
78
+ : join(projectDir, '.cursor', 'commands');
79
+ copyDir(commandsDir, targetCommandsDir);
80
+ }
81
+ }
72
82
  }
73
83
  else {
74
84
  // For rules/instructions/workflow, generate a single file
@@ -100,4 +110,68 @@ export function installForPlatform(platform, projectDir, mobilePlatform = 'all')
100
110
  writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + '\n', 'utf-8');
101
111
  }
102
112
  }
113
+ export function updateGitignore(projectDir, platform) {
114
+ const gitignorePath = join(projectDir, '.gitignore');
115
+ // Patterns to add based on platform
116
+ const patterns = [];
117
+ if (platform === 'claude' || platform === 'all') {
118
+ patterns.push('.claude/');
119
+ }
120
+ if (platform === 'cursor' || platform === 'all') {
121
+ patterns.push('.cursor/');
122
+ }
123
+ if (platform === 'windsurf' || platform === 'all') {
124
+ patterns.push('.windsurf/');
125
+ }
126
+ if (platform === 'opencode' || platform === 'all') {
127
+ patterns.push('.opencode/');
128
+ }
129
+ if (platform === 'copilot' || platform === 'all') {
130
+ patterns.push('.github/copilot/');
131
+ }
132
+ if (platform === 'roocode' || platform === 'all') {
133
+ patterns.push('.roo/');
134
+ }
135
+ if (platform === 'continue' || platform === 'all') {
136
+ patterns.push('.continue/');
137
+ }
138
+ if (platform === 'kiro' || platform === 'all') {
139
+ patterns.push('.kiro/');
140
+ }
141
+ if (platform === 'qoder' || platform === 'all') {
142
+ patterns.push('.qoder/');
143
+ }
144
+ if (platform === 'codebuddy' || platform === 'all') {
145
+ patterns.push('.codebuddy/');
146
+ }
147
+ if (platform === 'trae' || platform === 'all') {
148
+ patterns.push('.trae/');
149
+ }
150
+ if (platform === 'antigravity' || platform === 'all') {
151
+ patterns.push('.antigravity/');
152
+ }
153
+ // Also add shared directory
154
+ patterns.push('.mobile-best-practices/');
155
+ let content = '';
156
+ if (existsSync(gitignorePath)) {
157
+ content = readFileSync(gitignorePath, 'utf-8');
158
+ }
159
+ // Add header comment if not present
160
+ const header = '# AI Assistant Skills (mobile-best-practices)';
161
+ let needsUpdate = false;
162
+ if (!content.includes(header)) {
163
+ content += (content && !content.endsWith('\n\n') ? '\n\n' : '') + header + '\n';
164
+ needsUpdate = true;
165
+ }
166
+ // Add missing patterns
167
+ for (const pattern of patterns) {
168
+ if (!content.includes(pattern)) {
169
+ content += pattern + '\n';
170
+ needsUpdate = true;
171
+ }
172
+ }
173
+ if (needsUpdate) {
174
+ writeFileSync(gitignorePath, content, 'utf-8');
175
+ }
176
+ }
103
177
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AAChF,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AACrC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AAGpC,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AAEtC,MAAM,UAAU,YAAY;IAC1B,OAAO,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,eAAe;IAC7B,OAAO,IAAI,CAAC,YAAY,EAAE,EAAE,WAAW,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,QAAgB;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,eAAe,EAAE,EAAE,WAAW,EAAE,GAAG,QAAQ,OAAO,CAAC,CAAC;IAC5E,IAAI,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,8BAA8B,QAAQ,EAAE,CAAC,CAAC;IAC5D,CAAC;IACD,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,GAAW;IACnC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;QACrB,SAAS,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IACtC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CAAC,GAAW,EAAE,IAAY;IAC/C,SAAS,CAAC,IAAI,CAAC,CAAC;IAChB,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;AACzC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAC/B,MAAsB,EACtB,SAAiB,EACjB,iBAAiC,KAAK;IAEtC,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;IAEnC,2CAA2C;IAC3C,MAAM,aAAa,GAAG,cAAc,KAAK,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,cAAc,KAAK,CAAC;IACnF,MAAM,iBAAiB,GAAG,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAEzD,IAAI,OAAe,CAAC;IAEpB,IAAI,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;QAClC,iCAAiC;QACjC,OAAO,GAAG,YAAY,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;QACnD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,wCAAwC;QACxC,MAAM,WAAW,GAAG,YAAY,CAC9B,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,kBAAkB,CAAC,EACnD,OAAO,CACR,CAAC;QACF,MAAM,QAAQ,GAAG,YAAY,CAC3B,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,EAAE,oBAAoB,CAAC,EACrD,OAAO,CACR,CAAC;QAEF,IAAI,aAAa,GAAG,WAAW,CAAC,OAAO,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QACtE,IAAI,iBAAiB,GAAG,QAAQ,CAAC,OAAO,CAAC,iBAAiB,EAAE,SAAS,CAAC,CAAC;QAEvE,OAAO,GAAG;;;;;EAKZ,aAAa;;EAEb,iBAAiB;CAClB,CAAC;IACA,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,KAAK,CAAC,KAAK,IAAI,MAAM,CAAC,KAAK,CAAC,IAAI,IAAI,MAAM,CAAC,KAAK,CAAC,YAAY,IAAI,MAAM,CAAC,KAAK,CAAC,QAAQ,IAAI,UAAU,CAAC,CAAC;IAChJ,SAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC;IAC/B,aAAa,CAAC,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAC9C,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,QAAgB,EAChB,UAAkB,EAClB,iBAAiC,KAAK;IAEtC,MAAM,MAAM,GAAG,kBAAkB,CAAC,QAAQ,CAAC,CAAC;IAC5C,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;IAEvD,SAAS,CAAC,SAAS,CAAC,CAAC;IAErB,wBAAwB;IACxB,MAAM,SAAS,GAAG,YAAY,EAAE,CAAC;IACjC,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,IAAI,MAAM,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QACxD,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;QAChE,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC,CAAC;QACtE,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;IACvD,CAAC;SAAM,CAAC;QACN,0DAA0D;QAC1D,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,cAAc,CAAC,CAAC;QACrD,kDAAkD;QAClD,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,wBAAwB,CAAC,CAAC;QAC7D,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;QAC1D,OAAO,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,+CAA+C;IAC/C,IAAI,MAAM,CAAC,QAAQ,EAAE,CAAC;QACpB,MAAM,YAAY,GAAG,IAAI,CAAC,UAAU,EAAE,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAC5D,SAAS,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC;QAEjC,IAAI,QAAQ,GAAQ,EAAE,CAAC;QACvB,IAAI,UAAU,CAAC,YAAY,CAAC,EAAE,CAAC;YAC7B,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC,CAAC;QAC7D,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC1B,QAAQ,CAAC,WAAW,GAAG,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QACvC,CAAC;QACD,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,EAAE,CAAC;YAChC,QAAQ,CAAC,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC;QAClC,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,MAAM,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;YAC/C,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC/C,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACxC,CAAC;QACH,CAAC;QAED,aAAa,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,EAAE,OAAO,CAAC,CAAC;IACjF,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mobile-best-practices",
3
- "version": "1.0.0",
3
+ "version": "1.1.0",
4
4
  "description": "CLI to install Mobile Best Practices skill for AI coding assistants",
5
5
  "type": "module",
6
6
  "bin": {
@@ -13,7 +13,7 @@
13
13
  "scripts": {
14
14
  "build": "npx tsc",
15
15
  "dev": "npx tsx src/index.ts",
16
- "_prepublishOnly": "npm run build"
16
+ "prepublishOnly": "npm run build"
17
17
  },
18
18
  "dependencies": {
19
19
  "commander": "^12.1.0",