feat(episode): DEPURA_qu-hace-en-una-frase_S20260726.R2_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD
Skill: NONE | Type: troubleshooting Summary: EPISODIO 2 — MNEMO_PRE_DIGEST: Qué hace, en una frase
This commit is contained in:
parent
8b7970e9a6
commit
644cd6ac4a
1 changed files with 44 additions and 0 deletions
|
|
@ -0,0 +1,44 @@
|
||||||
|
---
|
||||||
|
episode_id: "aadf8149-186c-4e23-b594-4f4c6d0218d2"
|
||||||
|
puente_flat: "DEPURA_qu-hace-en-una-frase_S20260726.R2_XX.ops.2.hot_inf.in.cc.es.000.MGQ_J.PMCFK_E.SGNFD"
|
||||||
|
session_code: "S20260726.ARCO_CICLO4_AUTOMEJORA"
|
||||||
|
acto_dialogico: "informar"
|
||||||
|
actor_flujo: "multi_actor"
|
||||||
|
criticidad_aegis: "low"
|
||||||
|
skill_dominante: "NONE"
|
||||||
|
fase_proyecto: "operations"
|
||||||
|
tipo_semantico: "troubleshooting"
|
||||||
|
summary_one_line: "EPISODIO 2 — MNEMO_PRE_DIGEST: Qué hace, en una frase"
|
||||||
|
source_type: "claude_code"
|
||||||
|
trust_boundary: "internal"
|
||||||
|
created_at: "2026-07-26T19:25:41.676708+00:00"
|
||||||
|
relectura_tagged: false
|
||||||
|
forgejo_commit_sha: "pending"
|
||||||
|
---
|
||||||
|
|
||||||
|
Analicé el comando y lo medí en un bash aislado. **Funciona, pero tiene un bug silencioso que importa en un servidor** — y no es de colores.
|
||||||
|
|
||||||
|
## Qué hace, en una frase
|
||||||
|
|
||||||
|
Añade al final de `~/.bashrc` (el archivo que bash lee cada vez que abres una terminal) una línea que redefine `PS1` — la variable que dibuja el texto del prompt — y luego recarga ese archivo para verlo sin cerrar sesión.
|
||||||
|
|
||||||
|
## Lo que está bien hecho
|
||||||
|
|
||||||
|
Tres cosas correctas, y no son obvias:
|
||||||
|
|
||||||
|
- **Los `\[ ... \]` alrededor de cada código de color.** Los códigos de color son caracteres invisibles. Bash necesita saber que no ocupan espacio en pantalla; para eso se envuelven en `\[ \]`. Sin ellos, bash cuenta mal el ancho de la línea y el cursor se descuadra al navegar el historial o al escribir comandos largos (el módulo que gestiona la edición de línea, *readline*, pierde la cuenta). Aquí están todos bien puestos.
|
||||||
|
- **`>>` y no `>`.** Añade al final en vez de vaciar el archivo. Con `>` habrías borrado tu `.bashrc` completo.
|
||||||
|
- **Comillas simples externas.** La línea se escribe literal en el archivo, sin que el shell actual expanda nada al escribirla.
|
||||||
|
|
||||||
|
## Los hallazgos (medidos, no supuestos)
|
||||||
|
|
||||||
|
Expandí tu `PS1` con `${PS1@P}` —la expansión de prompt que hace bash internamente— y comparé contra la misma cadena en comillas simples. La diferencia es real:
|
||||||
|
|
||||||
|
| # | Hallazgo | Severidad |
|
||||||
|
|---|---|---|
|
||||||
|
| H1 | **Se pierde el indicador de root** | 🔴 alta |
|
||||||
|
| H2 | El directorio sale en rojo por herencia + código de color duplicado | 🟡 media |
|
||||||
|
| H3 | No es idempotente: cada corrida añade otra línea `PS1=` | 🟡 media |
|
||||||
|
| H4 | Si el `.bashrc` no termina en salto de línea, `>>` corrompe la última línea existente | 🟠 media-alta |
|
||||||
|
| H5 | El emoji ⚡ es el eslabón frágil (codificación + ancho de columna) | 🟡 media |
|
||||||
|
| H6 | Sin backup previo ni verificación posterior | 🟡 media |
|
||||||
Loading…
Reference in a new issue