Agent skill
project-setup-altrupets-monorepo
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/other/other/project-setup-altrupets-monorepo
SKILL.md
⚙️ Skill: Project Setup
📋 Metadata
| Atributo | Valor |
|---|---|
| ID | flutter-project-setup |
| Nivel | 🟢 Básico |
| Versión | 1.0.0 |
| Keywords | setup, init, scaffold, config, initialization |
🔑 Keywords para Invocación
setupinitscaffoldconfiginitialization@skill:flutter-project-setup
Ejemplos de Prompts
Crea el setup inicial para un proyecto Flutter
Necesito scaffold básico con configuración estándar
@skill:project-setup - Configura proyecto con flavors y análisis estático
📖 Descripción
Configuración estándar para cualquier proyecto Flutter con mejores prácticas, incluyendo análisis estático, flavors, temas, y estructura básica.
⚠️ IMPORTANTE: Todos los comandos de este skill deben ejecutarse desde la raíz del proyecto (donde existe el directorio mobile/). El skill incluye verificaciones para asegurar que se está en el directorio correcto antes de ejecutar cualquier comando.
🚀 Scripts de Inicialización Automática
Este skill incluye scripts automatizados para inicializar un proyecto Flutter en una estructura de monorepo:
1. Setup del Proyecto
Windows (PowerShell)
.\skills\flutter\project-setup\scripts\setup.ps1
Linux/macOS (Bash)
chmod +x skills/flutter/project-setup/scripts/setup.sh
./skills/flutter/project-setup/scripts/setup.sh
Los scripts de setup realizan automáticamente:
- ✅ Verificación de instalación de Flutter
- ✅ Creación de estructura de monorepo (
backend/ymobile/) - ✅ Inicialización del proyecto Flutter en
mobile/ - ✅ Instalación de dependencias
- ✅ Creación de archivos de configuración básicos (
.env-sample,.gitignore) - ✅ Generación de README para el proyecto mobile
Nota: Los scripts están diseñados para ejecutarse desde la raíz del proyecto monorepo.
2. Creación de Symlinks para Herramientas de IA
Para que los skills agénticos estén disponibles en diferentes herramientas de IA (Cursor, Kiro, Claude, Gemini, OpenAI Codex), puedes crear symlinks automáticamente:
Windows (PowerShell - Requiere permisos de administrador)
.\skills\flutter\project-setup\scripts\create-symlinks.ps1
Linux/macOS (Bash)
chmod +x skills/flutter/project-setup/scripts/create-symlinks.sh
./skills/flutter/project-setup/scripts/create-symlinks.sh
Los scripts de symlinks crean enlaces simbólicos desde skills/ hacia:
- Cursor Rules:
.cursor/rules/skills - Kiro Steering:
.kilocode/rules/skills - Claude Skills:
.claude/skills/*(un symlink por skill) - Gemini Extensions:
~/.gemini/extensions/flutter-agent-skills - OpenAI Codex:
codex/skills/*(un symlink por skill)
Nota: En Windows, este script requiere ejecutarse como administrador debido a las restricciones de creación de symlinks.
✅ Cuándo Usar Este Skill
- Al iniciar cualquier nuevo proyecto Flutter
- Necesitas configuración estándar y profesional
- Quieres evitar configuraciones manuales repetitivas
- Deseas seguir mejores prácticas desde el inicio
🏗️ Estructura Base
lib/
├── config/
│ ├── theme/
│ │ ├── app_theme.dart
│ │ ├── colors.dart
│ │ └── text_styles.dart
│ ├── routes/
│ │ ├── app_router.dart
│ │ └── route_names.dart
│ ├── constants/
│ │ ├── app_constants.dart
│ │ └── api_constants.dart
│ └── env/
│ ├── env_config.dart
│ ├── dev_config.dart
│ ├── staging_config.dart
│ └── prod_config.dart
├── l10n/
│ ├── app_en.arb
│ └── app_es.arb
├── core/
│ ├── utils/
│ └── extensions/
└── main.dart
⚙️ Configuraciones Incluidas
1. Analysis Options
# analysis_options.yaml
include: package:flutter_lints/flutter.yaml
analyzer:
exclude:
- "**/*.g.dart"
- "**/*.freezed.dart"
errors:
invalid_annotation_target: ignore
language:
strict-casts: true
strict-inference: true
strict-raw-types: true
linter:
rules:
- always_declare_return_types
- always_put_required_named_parameters_first
- always_use_package_imports
- avoid_print
- avoid_unnecessary_containers
- avoid_web_libraries_in_flutter
- prefer_const_constructors
- prefer_const_literals_to_create_immutables
- prefer_final_fields
- prefer_single_quotes
- sort_constructors_first
- use_build_context_synchronously
2. Flavors Configuration
// config/env/env_config.dart
abstract class EnvConfig {
String get apiBaseUrl;
String get appName;
bool get isDevelopment;
}
// config/env/dev_config.dart
class DevConfig implements EnvConfig {
@override
String get apiBaseUrl => 'https://dev-api.example.com';
@override
String get appName => 'MyApp DEV';
@override
bool get isDevelopment => true;
}
// config/env/prod_config.dart
class ProdConfig implements EnvConfig {
@override
String get apiBaseUrl => 'https://api.example.com';
@override
String get appName => 'MyApp';
@override
bool get isDevelopment => false;
}
3. Theme Configuration
// config/theme/app_theme.dart
import 'package:flutter/material.dart';
class AppTheme {
static ThemeData get lightTheme {
return ThemeData(
useMaterial3: true,
colorScheme: ColorScheme.fromSeed(
seedColor: AppColors.primary,
brightness: Brightness.light,
),
textTheme: AppTextStyles.textTheme,
appBarTheme: const AppBarTheme(
centerTitle: true,
elevation: 0,
),
);
}
static ThemeData get darkTheme {
return ThemeData(
useMaterial3: true,
colorScheme: ColorScheme.fromSeed(
seedColor: AppColors.primary,
brightness: Brightness.dark,
),
textTheme: AppTextStyles.textTheme,
appBarTheme: const AppBarTheme(
centerTitle: true,
elevation: 0,
),
);
}
}
4. Routing Configuration
// config/routes/app_router.dart
import 'package:flutter/material.dart';
class AppRouter {
static Route<dynamic> generateRoute(RouteSettings settings) {
switch (settings.name) {
case RouteNames.home:
return MaterialPageRoute(
builder: (_) => const HomePage(),
);
case RouteNames.details:
return MaterialPageRoute(
builder: (_) => const DetailsPage(),
);
default:
return MaterialPageRoute(
builder: (_) => const NotFoundPage(),
);
}
}
}
5. Internacionalización (i18n)
// l10n/app_en.arb
{
"@@locale": "en",
"appTitle": "My Application",
"welcome": "Welcome",
"loading": "Loading..."
}
// l10n/app_es.arb
{
"@@locale": "es",
"appTitle": "Mi Aplicación",
"welcome": "Bienvenido",
"loading": "Cargando..."
}
6. Main.dart
// main.dart
import 'package:flutter/material.dart';
import 'package:flutter_localizations/flutter_localizations.dart';
import 'config/theme/app_theme.dart';
import 'config/routes/app_router.dart';
import 'generated/l10n.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'My App',
theme: AppTheme.lightTheme,
darkTheme: AppTheme.darkTheme,
themeMode: ThemeMode.system,
onGenerateRoute: AppRouter.generateRoute,
localizationsDelegates: const [
S.delegate,
GlobalMaterialLocalizations.delegate,
GlobalWidgetsLocalizations.delegate,
GlobalCupertinoLocalizations.delegate,
],
supportedLocales: S.delegate.supportedLocales,
);
}
}
📦 Dependencias Básicas
dependencies:
flutter:
sdk: flutter
flutter_localizations:
sdk: flutter
intl: ^0.18.1
dev_dependencies:
flutter_test:
sdk: flutter
flutter_lints: ^3.0.1
✅ Checklist de Configuración
- Ejecutar script de inicialización (
setup.ps1osetup.sh) - Configurar
analysis_options.yaml - Configurar flavors (dev, staging, production)
- Configurar internacionalización (i18n)
- Configurar tema oscuro/claro
- Configurar navegación
- Configurar constantes
- Configurar estructura de carpetas
- Agregar dependencias básicas
📁 Archivos del Skill
Este skill incluye los siguientes archivos:
SKILL.md- Documentación completa del skillscripts/setup.ps1- Script de inicialización para Windows (PowerShell)scripts/setup.sh- Script de inicialización para Linux/macOS (Bash)scripts/create-symlinks.ps1- Script para crear symlinks en Windows (PowerShell, requiere admin)scripts/create-symlinks.sh- Script para crear symlinks en Linux/macOS (Bash)
Última actualización: Diciembre 2025 Versión: 1.0.0
Recommended Agent Skills
Expand your agent's capabilities with these related and highly-rated skills.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
agent-ops-spec
Manage specification documents in .agent/specs/. Use when user provides requirements, acceptance criteria, or feature descriptions that need to be tracked and validated against implementation.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-testing
Test strategy, execution, and coverage analysis. Use when designing tests, running test suites, or analyzing test results beyond baseline checks.
agent-ops-state
Maintain .agent state files. Use at session start, after meaningful steps, and before concluding: read/update constitution/memory/focus/issues/baseline consistently.
Didn't find tool you were looking for?