@eduardbar/drift 0.3.0 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,165 @@
1
+ ================================================================
2
+ POST LINKEDIN
3
+ Imagen: assets/og-v030-linkedin.png
4
+ ================================================================
5
+
6
+ La IA escribe el código. Pero no asume responsabilidad por él.
7
+
8
+ Y ese es el problema.
9
+
10
+ Cuando tú haces code review, buscas cosas como:
11
+ - catch blocks que tragan errores reales en silencio
12
+ - console.logs viviendo en lógica de producción
13
+ - imports de tres refactors atrás que nadie borró
14
+ - funciones de 50 líneas haciendo cinco cosas distintas
15
+ - funciones sin return type que rompieron el type inference sin avisar
16
+
17
+ Cuando usas IA para escribir código...
18
+ No hay esa segunda mirada.
19
+ Y el riesgo no explota hoy. Se acumula.
20
+
21
+ El CI sigue verde. El deploy sigue funcionando. El codebase se está pudriendo.
22
+
23
+ ---
24
+
25
+ Construí drift para eso.
26
+
27
+ Un CLI que escanea tu proyecto TypeScript con análisis AST real y le pone un score a cada archivo por deuda AI-generada.
28
+
29
+ 0 es limpio. 100 es "reescribe esto antes de que alguien lo vea".
30
+
31
+ 🚀 drift v0.3.0 — esto es lo que llegó:
32
+
33
+ 🔥 --ai → JSON estructurado para pasarle directamente a Claude o GPT. Issues ordenados por severidad y esfuerzo. Quick wins primero. Con fix_suggestion por issue. Con recommended_action generada.
34
+
35
+ drift scan ./src --ai | pbcopy → pégalo en el chat → el modelo ya sabe dónde empezar.
36
+
37
+ 🔥 --fix → sugerencias inline en consola para cada issue. Ya no solo te digo qué está mal. Te muestro qué hacer.
38
+
39
+ 🔥 drift-ignore → control quirúrgico.
40
+ // drift-ignore por línea.
41
+ // drift-ignore-file para archivos completos con output intencional.
42
+
43
+ 🔥 CI-ready con un flag:
44
+ npx @eduardbar/drift scan ./src --min-score 60
45
+ Exit 1 si el score supera el umbral. Un npx en tu GitHub Actions.
46
+
47
+ 🔥 Windows-compatible → el npx fallaba silenciosamente en Windows con ES modules. Arreglado.
48
+
49
+ ---
50
+
51
+ Lo corrí en el CLI source de shadcn/ui → score 0.
52
+ Lo corrí en mis propios módulos con vibe coding → 40 a 60.
53
+
54
+ La diferencia existe. drift la hace medible.
55
+
56
+ npx @eduardbar/drift scan .
57
+
58
+ MIT. Zero config. Sin cloud. Sin setup.
59
+
60
+ ⭐ Si te sirve, deja una estrella: github.com/eduardbar/drift
61
+
62
+ #TypeScript #OpenSource #VibeCoding #TechDebt #DeveloperTools #CleanCode #WebDev
63
+
64
+
65
+ ================================================================
66
+ HILO X/TWITTER
67
+ Tweet 1 con imagen: assets/og-v030-x.png
68
+ ================================================================
69
+
70
+ --- Tweet 1 ---
71
+ La IA escribe el código. Pero no asume responsabilidad por él.
72
+
73
+ Y ese es el problema real del vibe coding.
74
+
75
+ Construí drift para medirlo. v0.3.0 acaba de salir.
76
+
77
+ Hilo 🧵
78
+
79
+ --- Tweet 2 ---
80
+ Meses de vibe coding. CI verde. Deploy funcionando.
81
+
82
+ Y nadie sabía que el codebase se estaba pudriendo.
83
+
84
+ Catch blocks vacíos tragando errores reales.
85
+ console.logs en producción.
86
+ Funciones sin return type rompiendo el type inference.
87
+ Imports de tres refactors atrás que nadie borró.
88
+
89
+ El problema no explota hoy. Se acumula.
90
+
91
+ --- Tweet 3 ---
92
+ drift escanea tu proyecto TypeScript con análisis AST real.
93
+
94
+ Le pone un score a cada archivo por deuda AI-generada.
95
+
96
+ 0 = limpio.
97
+ 100 = reescribe esto antes de que alguien lo vea.
98
+
99
+ Un comando:
100
+
101
+ npx @eduardbar/drift scan .
102
+
103
+ Sin config. Sin cloud. Sin setup.
104
+
105
+ --- Tweet 4 ---
106
+ Nuevo en v0.3.0: --ai
107
+
108
+ Output JSON para pasarle directamente a Claude/GPT.
109
+
110
+ Issues ordenados por severidad + esfuerzo.
111
+ Quick wins primero.
112
+ fix_suggestion por issue.
113
+ recommended_action generada.
114
+
115
+ drift scan ./src --ai | pbcopy
116
+
117
+ Pégalo en el chat. El modelo ya sabe dónde empezar.
118
+
119
+ --- Tweet 5 ---
120
+ Nuevo en v0.3.0: --fix
121
+
122
+ Ya no solo te digo qué está mal.
123
+ Te muestro qué hacer.
124
+
125
+ │ - console.log(userData)
126
+ │ + Remove this or use a proper logging library
127
+
128
+ Inline. En consola. Sin salir de la terminal.
129
+
130
+ --- Tweet 6 ---
131
+ drift-ignore para control quirúrgico.
132
+
133
+ // drift-ignore ← suprime esta línea
134
+ // drift-ignore-file ← suprime el archivo entero
135
+
136
+ drift se corre sobre sí mismo.
137
+ printer.ts tiene drift-ignore-file en la línea 1 porque sus console.log son output intencional, no deuda.
138
+
139
+ Si no se come su propio dog food, no te lo recomendaría.
140
+
141
+ --- Tweet 7 ---
142
+ CI en un flag:
143
+
144
+ npx @eduardbar/drift scan ./src --min-score 60
145
+
146
+ Exit 1 si el score supera el umbral.
147
+
148
+ Un npx en tu GitHub Actions.
149
+ No setup. No config. No cloud.
150
+ Corre en Windows, Linux, macOS.
151
+
152
+ --- Tweet 8 ---
153
+ Lo corrí en el CLI source de shadcn/ui.
154
+ Score: 0. Producción real. Cero deuda.
155
+
156
+ Lo corrí en mis propios módulos con vibe coding.
157
+ Score: 40-60.
158
+
159
+ La diferencia existe. drift la hace medible.
160
+
161
+ MIT. Open source.
162
+
163
+ github.com/eduardbar/drift
164
+
165
+ Si te sirvió, una estrella no cuesta nada ⭐
@@ -1,5 +1,5 @@
1
1
  import { SourceFile } from 'ts-morph';
2
- import type { FileReport } from './types.js';
2
+ import type { FileReport, DriftConfig } from './types.js';
3
3
  export declare function analyzeFile(file: SourceFile): FileReport;
4
- export declare function analyzeProject(targetPath: string): FileReport[];
4
+ export declare function analyzeProject(targetPath: string, config?: DriftConfig): FileReport[];
5
5
  //# sourceMappingURL=analyzer.d.ts.map