Skip to content
Back to skills

Es

BSecurity

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.

  • 6 stars
  • 0 votes
  • 0 copies
  • 4 views
  • Added September 4, 2026
ai-agentspythongobashvuegit

Security analysis

B88/100
  • criticalPipes output to a shell interpreter

Pro shows the line behind each finding and how to fix it

Scanned September 28, 2026

npx -y skills add ellmos-ai/skills --skill es --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Es?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Es
[![Security: B — Skills Directory](https://www.skillsdirectory.com/api/skills/ellmos-ai-skills-2534de90/badge)](https://www.skillsdirectory.com/skills/ellmos-ai-skills-2534de90)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
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

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.