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.
- package/assets/commands/mobile-performance-check.md +28 -0
- package/assets/commands/mobile-security-audit.md +26 -0
- package/assets/commands/mobile-setup-android.md +41 -0
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +58 -21
- package/dist/commands/init.js.map +1 -1
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +74 -0
- package/dist/utils/index.js.map +1 -1
- package/package.json +2 -2
|
@@ -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,
|
|
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"}
|
package/dist/commands/init.js
CHANGED
|
@@ -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.
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
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":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,GAAG,MAAM,KAAK,CAAC;AACtB,OAAO,OAAO,MAAM,SAAS,CAAC;AAC9B,OAAO,EAAE,mBAAmB,EAAwC,MAAM,mBAAmB,CAAC;AAC9F,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/utils/index.d.ts
CHANGED
|
@@ -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,
|
|
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"}
|
package/dist/utils/index.js
CHANGED
|
@@ -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
|
package/dist/utils/index.js.map
CHANGED
|
@@ -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;
|
|
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.
|
|
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
|
-
"
|
|
16
|
+
"prepublishOnly": "npm run build"
|
|
17
17
|
},
|
|
18
18
|
"dependencies": {
|
|
19
19
|
"commander": "^12.1.0",
|