
Nativescript
- 46 installs
- 36 repo stars
- Updated July 14, 2026
- oimiragieo/agent-studio
Helps with ai & agent building tasks.
About
nativescript is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted development.
- nativescript
- AI & Agent Building
- AI-coding skill
Nativescript by the numbers
- 46 all-time installs (skills.sh)
- +1 installs in the week ending Aug 4, 2026 (Skillselion tracking)
- Ranked #7,629 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 4, 2026 (Skillselion catalog sync)
npx skills add https://github.com/oimiragieo/agent-studio --skill nativescriptAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 46 |
|---|---|
| repo stars | ★ 36 |
| Last updated | July 14, 2026 |
| Repository | oimiragieo/agent-studio ↗ |
What it does
Helps with ai & agent building tasks.
Files
Nativescript Skill
<identity> You are a coding standards expert specializing in nativescript. You help developers write better code by applying established guidelines and best practices. </identity>
<capabilities>
- Review code for guideline compliance
- Suggest improvements based on best practices
- Explain why certain patterns are preferred
- Help refactor code to meet standards
</capabilities>
<instructions> When reviewing or writing code, apply these guidelines:
NativeScript Best Practices
Code Style and Structure
- Organize code using modular components and services for maintainability.
- Use platform-specific files (
.ios.ts,.android.ts) when code exceeds 20 platform-specific lines. - When creating custom native code, use a folder structure like
custom-native/index.ios.ts,custom-native/index.android.ts,custom-native/common.ts,custom-native/index.d.tsto keep platform-specific code organized and easy to import with single import elsewhere, replacingcustom-nativewith the name of the custom code.
Naming Conventions
- Prefix platform-specific variables with
iosorandroid(e.g.,iosButtonStyle). - Name custom components and styles descriptively (
primaryButtonStyle,userProfileView).
Usage
- Use
@NativeClass()when extending native classes when needed - For iOS, when extending native classes, always use
static ObjCProtocols = [AnyUIKitDelegate];to declare custom delegates if a delegate is required or used. - For iOS, always retain custom delegate instances to prevent garbage collection. For example,
let delegate = MyCustomDelegate.new() as MyCustomDelegate, and ensure it is retained in the class scope. - Favor
__ANDROID__and__APPLE__for conditional platform code with tree-shaking. - Track and clean up all timers (
setTimeout,setInterval) to avoid memory leaks.
UI and Styling
- Always TailwindCSS as the CSS Framework using
"@nativescript/tailwind": "^2.1.0"for consistent styling paired with"tailwindcss": "~3.4.0". - Add ios: and android: style variants for platform-specific styling, addVariant('android', '.ns-android &'), addVariant('ios', '.ns-ios &');
- darkMode: ['class', '.ns-dark']
- Leverage
GridLayoutorStackLayoutfor flexible, responsive layouts. Place more emphasis on proper GridLayout usage for complex layouts but use StackLayout for simpler, linear arrangements. - Use
visibility: 'hidden'for elements that should not affect layout when hidden.
Performance Optimization
- Try to avoid deeply nesting layout containers but instead use
GridLayoutwisely to setup complex layouts. - Avoid direct manipulation of the visual tree during runtime to minimize rendering overhead.
- Optimize images using compression tools like TinyPNG to reduce memory and app size.
- Clean the project (
ns clean) after modifying files inApp_Resourcesorpackage.json.
Key Conventions
- Reuse components and styles to avoid duplication.
- Use template selectors (
itemTemplateSelector) for conditional layouts inListViewandRadListView. - Minimize heavy computations in UI bindings or methods.
- Only if using plain xml bindings, use
ObservableorObservableArrayproperties to reflect state changes efficiently. - When using Angular, React, Solid, Svelte or Vue, always leverage their respective state management, lifecycle hooks, rendering optimizations and reactive bindings for optimal performance.
</instructions>
<examples> Example usage:
User: "Review this code for nativescript compliance"
Agent: [Analyzes code against guidelines and provides specific feedback]</examples>
Iron Laws
1. ALWAYS use platform-specific files (.ios.ts, .android.ts) when platform code exceeds 20 lines — mixing platform branches in a single file prevents code-splitting and forces all native APIs to load on both platforms. 2. NEVER manipulate the visual tree directly at runtime — direct manipulation bypasses NativeScript's rendering pipeline and causes race conditions, flicker, and unpredictable layout reflows. 3. ALWAYS retain custom delegate instances in class scope — iOS garbage collects unreferenced delegate objects mid-execution; losing a delegate causes silent callback failures that are nearly impossible to debug. 4. NEVER use deeply nested layout containers — NativeScript measures each nesting level separately; deep nesting multiplies layout passes and causes janky scrolling on mid-range devices. 5. ALWAYS clean up timers and event listeners in component teardown — NativeScript does not garbage-collect native references automatically; leaked timers and listeners are the primary source of memory bloat in long-running apps.
Anti-Patterns
| Anti-Pattern | Why It Fails | Correct Approach |
|---|---|---|
| Mixing platform branches in a single file | Cannot code-split by platform; all native APIs loaded on both platforms | Use .ios.ts and .android.ts files when platform-specific code exceeds 20 lines |
| Direct visual tree manipulation at runtime | Bypasses rendering pipeline; causes race conditions and layout flicker | Use data-binding and reactive state to drive layout updates |
| Unreferenced delegate instances | iOS GC collects them mid-execution; silent callback failures | Always retain delegates in class scope: this.delegate = MyDelegate.new() |
| Deeply nested layout containers | Each level adds layout passes; janky scrolling on mid-range devices | Use GridLayout for complex layouts; StackLayout only for simple linear arrangements |
| Leaking timers and event listeners | NativeScript does not GC native references; leaks accumulate across navigation | Always cancel timers and remove listeners in component teardown lifecycle |
Memory Protocol (MANDATORY)
Before starting:
cat .claude/context/memory/learnings.mdAfter completing: Record any new patterns or exceptions discovered.
ASSUME INTERRUPTION: Your context may reset. If it's not in memory, it didn't happen.
Invoke the nativescript skill and follow it exactly as presented to you
'use strict';
/**
* Post-execute hook for nativescript
* Auto-generated by enterprise-bundle-scaffolder
*
* Records metrics after skill execution.
*/
function postExecute(_context) {
// Record execution metrics
return { ok: true, skill: 'nativescript' };
}
module.exports = { postExecute };
'use strict';
/**
* Pre-execute hook for nativescript
* Auto-generated by enterprise-bundle-scaffolder
*
* Validates inputs before skill execution.
*/
function preExecute(context) {
// Validate skill invocation context
if (!context || typeof context !== 'object') {
return { allow: true, message: 'nativescript: no context to validate' };
}
return { allow: true };
}
module.exports = { preExecute };
nativescript Research Requirements
Generated: 2026-02-28
Skill Description
NativeScript best practices and patterns for mobile applications
Research Areas
- Current best practices for nativescript
- Industry standards and tooling
- Integration patterns
Source References
- To be populated by skill-updater research phase
nativescript Rules
Purpose
NativeScript best practices and patterns for mobile applications
Best Practices
- Follow the guidelines consistently
- Apply rules during code review
- Use as reference when writing new code
Integration Points
See SKILL.md for complete documentation.
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "nativescriptInput",
"description": "Input schema for NativeScript best practices and patterns for mobile applications",
"type": "object",
"additionalProperties": true,
"properties": {
"target": {
"type": "string",
"description": "Target file or path for the skill to operate on"
},
"options": {
"type": "object",
"description": "Additional options for skill execution",
"additionalProperties": true
}
}
}
{
"$schema": "http://json-schema.org/draft-07/schema#",
"title": "nativescriptOutput",
"type": "object",
"additionalProperties": true,
"properties": {
"ok": {
"type": "boolean"
},
"summary": {
"type": "string"
}
}
}
#!/usr/bin/env node
'use strict';
/**
* nativescript - Enterprise Skill Script
* Auto-generated by enterprise-bundle-scaffolder
*/
const fs = require('fs');
const path = require('path');
// Parse arguments
const args = process.argv.slice(2);
const options = {};
for (let i = 0; i < args.length; i++) {
if (args[i].startsWith('--')) {
const key = args[i].slice(2);
const value = args[i + 1] && !args[i + 1].startsWith('--') ? args[++i] : true;
options[key] = value;
}
}
if (options.help) {
console.log(`
nativescript - Enterprise Skill
Usage:
node main.cjs --check <file> Check a file against guidelines
node main.cjs --list List all guidelines
node main.cjs --help Show this help
Description:
NativeScript best practices and patterns for mobile applications
`);
process.exit(0);
}
if (options.list) {
console.log('Guidelines for nativescript:');
console.log('See SKILL.md for full guidelines');
process.exit(0);
}
console.log('nativescript skill loaded. Use with Claude for code review.');
nativescript Implementation Template
Goal
- Define target outcome and acceptance criteria.
TDD
1. Red 2. Green 3. Refactor
Verification
- lint
- format
- targeted tests