🎯 IMPLEMENTATION PLAN: Asset Selection (08_14)¶
📍 UBICACIÓN¶
Carpeta: 4 - INTEGRATION/08_PLUGINS/08_14_asset_selection/
🤖 PROMPT INICIAL¶
"Estoy en
08_14_asset_selection. Implementaré sistema de selección de assets para packaging. Leo IMPLEMENTATION_PLAN.md."
📊 FASES (2 prompts, 6-10h)¶
FASE 1: Packaging Configuration (3-5h)¶
Tareas:
1. 08_14_00_packaging_config/
2. AssetInclusionRules.hpp/.cpp - Reglas de inclusión de assets
3. PlatformSpecificAssets.hpp/.cpp - Assets por plataforma
4. InstallerConfiguration.hpp/.cpp - Config de instalador
5. packaging_config.json - Schema JSON
6. Tests de packaging
Checklist: - [ ] Inclusion rules funcionan (wildcards, exclusions) - [ ] Platform-specific assets (Windows/macOS/Linux) - [ ] Installer config completo - [ ] JSON schema validado - [ ] Tests de packaging pasan
FASE 2: Selection Criteria (3-5h)¶
Tareas:
1. 08_14_01_selection_criteria/
2. QualityTierSelector.hpp/.cpp - Draft/Pro/Ultra tiers
3. PlatformRequirements.hpp/.cpp - Requirements check
4. LicenseChecker.hpp/.cpp - License compliance
5. AssetInventory.hpp/.cpp - Inventario de assets
6. VersionTracking.hpp/.cpp - Tracking de versiones
7. Tests + Documentación
Checklist: - [ ] Quality tiers seleccionables - [ ] Platform requirements validados - [ ] License checking automático - [ ] Asset inventory completo - [ ] Version tracking funcional - [ ] Docs de uso completas
📝 DETALLES DE IMPLEMENTACIÓN¶
AssetInclusionRules.hpp¶
class AssetInclusionRules {
public:
struct Rule {
std::string pattern; // "*.wav", "presets/**/*.json"
bool include = true; // true = include, false = exclude
std::string platform; // "all", "windows", "macos", "linux"
std::string tier; // "all", "draft", "pro", "ultra"
};
void addRule(const Rule& rule);
std::vector<std::string> selectAssets(
const std::string& basePath,
const std::string& platform,
const std::string& tier
) const;
};
QualityTierSelector.hpp¶
enum class QualityTier {
Draft, // Minimal assets, fast iteration
Pro, // Standard quality
Ultra // Maximum quality
};
class QualityTierSelector {
public:
struct TierAssets {
std::vector<std::string> requiredAssets;
std::vector<std::string> optionalAssets;
size_t estimatedSize; // bytes
};
TierAssets selectAssetsForTier(
QualityTier tier,
const std::string& productId
) const;
};
packaging_config.json Schema¶
{
"product": "TS_Compressor",
"version": "1.0.0",
"platforms": {
"windows": {
"installer": "NSIS",
"assets": [
{
"pattern": "bin/**/*.dll",
"tier": "all"
},
{
"pattern": "presets/**/*.json",
"tier": "all"
}
]
},
"macos": {
"installer": "PKG",
"assets": [
{
"pattern": "*.component",
"tier": "all"
}
]
}
},
"tiers": {
"draft": {
"include": ["bin/**", "presets/factory/*.json"],
"exclude": ["docs/**", "samples/**"]
},
"pro": {
"include": ["**"]
},
"ultra": {
"include": ["**"],
"additionalAssets": ["samples/high_quality/**"]
}
}
}
🎯 CRITERIOS DE ACEPTACIÓN¶
Packaging¶
- Rules engine selecciona assets correctamente
- Platform-specific assets separados
- Installer config genera configs válidos
- JSON schema completo y validado
Selection¶
- Draft tier: Minimal assets (< 10MB)
- Pro tier: Standard quality (10-50MB)
- Ultra tier: Maximum quality (> 50MB)
- Platform requirements chequeados automáticamente
- License compliance garantizado
Testing¶
- Tests con diferentes tiers pasan
- Tests con diferentes platforms pasan
- Tests de size estimation precisos (±10%)
- No assets faltantes en packages
📦 DEPENDENCIAS¶
Depende de: - ✅ 08_12 (Product Catalog) - Product metadata - ✅ 08_13 (Products) - Actual products to package
Bloqueante para: - Deployment/Release process - Distribution packages
💾 COMMITS RECOMENDADOS¶
# Fase 1
git commit -m "feat(08_14): add packaging configuration system
- Implement AssetInclusionRules with wildcard support
- Add platform-specific asset handling
- Add installer configuration system
- Include packaging_config.json schema
- Add packaging tests"
# Fase 2
git commit -m "feat(08_14): add asset selection criteria
- Implement QualityTierSelector (Draft/Pro/Ultra)
- Add platform requirements checking
- Add license compliance checker
- Implement asset inventory system
- Add version tracking
- Complete documentation"
Estado: 📝 LISTO PARA IMPLEMENTACIÓN Estimación total: 6-10 horas (2 fases)