Reestructura jerarquías de carpetas anidadas en diseños planos y legibles por máquina. Basado en Bash con lógica de fusión inteligente.
Scanned 9/4/2026
Install to Claude Code
npx -y skills add ellmos-ai/skills --skill es --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Es?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/ellmos-ai-skills-2534de90)More formats (shields.io, HTML) on the badges page.
---
name: folder-flattening
version: 1.0.0
type: tool
author: Lukas Geiger
created: 2026-03-12
updated: 2026-03-12
description: Reestructura jerarquías de carpetas anidadas en diseños planos y legibles por máquina. Basado en Bash con lógica de fusión inteligente.
standalone: true
anthropic_compatible: true
bach_compatible: false
bach_origin: true
category: utilities
tags: [folder, flattening, filesystem, bash, reorganization, cleanup]
language: es
status: active
dependencies: {'tools': [], 'services': [], 'protocols': [], 'python': []}
provenance: {'origin': 'bach', 'origin_path': 'system/skills/workflows/ordner-flattening.md', 'origin_version': '1.0.0', 'origin_repo': 'github.com/ellmos-ai/bach', 'last_sync_from_origin': '2026-03-12', 'last_sync_to_origin': None, 'local_changes_since_sync': True}
---
<img src="banner.png" width="100%" alt="folder-flattening banner">
> **Español** — Versión oficial en español de `folder-flattening`.
# Flujo de trabajo: Folder Flattening
Objetivo: Convertir estructuras de carpetas anidadas en una estructura plana y legible por máquina.
Ventaja: No más navegación manual por directorios — búsqueda mediante base de datos (`Verzeichnis.db`) en su lugar.
Se permiten duplicados cuando tengan sentido temático.
---
## Descripción general de las fases
| Fase | Qué sucede | Sección del script |
|-------|-------------|----------------|
| 1 | Aplanar (Flatten): Mover todas las subcarpetas a un solo nivel | `phase_flatten` |
| 2 | Acortar (Shorten): Truncar nombres de ruta largos al último segmento, fusionar en caso de conflicto | `phase_shorten` |
| 3 | Limpieza: Resolver guiones bajos múltiples (`___`), eliminar `_` final | `phase_cleanup_underscores` |
| 4 | Agrupar: Mover carpetas numéricas, carpetas de CD y nombres cortos a carpetas de colección | `phase_group_problematic` |
| 5 | Análisis de tripletes: Grupos deslizantes de 3, el nombre más corto como destino de fusión | `phase_tripel_merge` |
| 6 | Fusión por formato de medios: Consolidar carpetas según el tipo de archivo (plantilla) | `phase_media_merge` |
| 7 | Limpieza: Eliminar carpetas vacías | `phase_cleanup_empty` |
---
## Reglas importantes
### Coincidencia en el análisis de tripletes
- **Subcadena**: `Education` en `EducationalBrochures` -> fusionar en `Education`
- **Plural/Umlaut**: `Room` = `Rooms`, `Part` = `Parts`, `Book` = `Books`
- **Primera palabra**: `Autism ADHD` coincide con `Autism Career` (mismo inicio)
### Longitud mínima
- Nombre de una sola palabra sin espacios: **al menos 8 caracteres** (evita `Hand`, `House`, `Form`)
- Con espacios (p. ej., `ICF Catalog`): **a partir de 3 caracteres OK**
- Esto permite mantener `ICF`, `ASD Women`, etc.
### Reinicio tras la fusión
Tras cada fusión, la lista de carpetas se vuelve a cargar y se reinicia en el destino de la fusión.
De este modo, por ejemplo, `Autism` recopila todas las extensiones antes de continuar.
---
## Fusión por formato de medios (Sistema de plantillas)
La Fase 6 utiliza un arreglo de plantilla `MEDIA_TYPES`. Cada entrada define:
- Carpeta de destino (con prefijo `_`)
- Extensiones de archivo pertenecientes a este tipo
```bash
MEDIA_TYPES=(
"_Audio|mp3|m4a|wav|flac|ogg|wma|aac|opus|aiff"
"_Video|mp4|avi|mkv|mov|wmv|flv|webm|m4v|mpg|mpeg|3gp"
"_Images|jpg|jpeg|png|gif|bmp|tiff|tif|webp|svg|ico|heic|heif|raw|cr2|nef"
# Extensible:
# "_Spreadsheets|xlsx|xls|csv|ods"
# "_Presentations|pptx|ppt|odp"
# "_Code|py|js|ts|sh|bat|ps1"
# "_CAD|dwg|dxf|step|stl"
# "_3D|obj|fbx|blend|gltf|glb"
# "_Fonts|ttf|otf|woff|woff2"
)
```
Solo se mueven las carpetas que contienen **exclusivamente** archivos de un tipo.
Las carpetas con subcarpetas se omiten.
### Añadir un nuevo tipo de medio
Simplemente añada una nueva línea al arreglo `MEDIA_TYPES`:
```bash
"_TargetFolder|ext1|ext2|ext3"
```
---
## Ejecución
```bash
# Complete run:
cd /path/to/target/directory
bash ordner_flattening_komplett.sh
# Or individual phases:
bash ordner_flattening_komplett.sh --phase flatten
bash ordner_flattening_komplett.sh --phase tripel
bash ordner_flattening_komplett.sh --phase media
bash ordner_flattening_komplett.sh --phase cleanup
```
---
## Valores de experiencia (Sesión 2026-01-26)
- Inicio: 206 carpetas + 252 archivos sueltos, ~5600 subcarpetas anidadas
- Tras aplanar: ~2200 carpetas en un solo nivel
- Tras acortar y limpiar: ~2005 carpetas
- Tras agrupar (números, CDs): ~2005 -> carpetas de colección creadas
- Tras triplete v1: ~1561 carpetas
- Tras triplete v2 (regla de 8 caracteres): reducción adicional
- Fase de formato de medios: Carpetas de audio/video/imágenes consolidadas
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!