1
00:00:09,679 --> 00:00:15,660
Buenas, esto es BIMPRAXIS, el podcast donde el

2
00:00:15,660 --> 00:00:17,739
BIM se encuentra con la inteligencia artificial.

3
00:00:20,219 --> 00:00:23,480
Exploramos la ciencia, la tecnología y el futuro

4
00:00:23,480 --> 00:00:26,460
desde el enfoque de la arquitectura, ingeniería y

5
00:00:26,460 --> 00:00:27,120
construcción.

6
00:00:28,679 --> 00:00:29,440
¡Empezamos!

7
00:00:36,850 --> 00:00:40,590
Muy buenas, bienvenidas, bienvenidos a un nuevo episodio

8
00:00:40,590 --> 00:00:41,609
de BIMPRAXIS.

9
00:00:41,869 --> 00:00:44,689
Hoy os traemos SPECKIT de GitHub.

10
00:00:50,070 --> 00:01:09,950
Sí, sí, y sin que un ser humano

11
00:01:09,950 --> 00:01:11,969
tenga que picar ni una sola línea de

12
00:01:11,969 --> 00:01:13,549
código, que se dice pronto.

13
00:01:14,189 --> 00:01:14,650
Exacto.

14
00:01:14,689 --> 00:01:16,469
Es que eso, bueno, ha dejado de ser

15
00:01:16,469 --> 00:01:18,030
una promesa de ciencia ficción.

16
00:01:18,150 --> 00:01:20,129
Esa es la realidad arquitectónica que vamos a

17
00:01:20,129 --> 00:01:21,310
diseccionar hoy aquí.

18
00:01:21,469 --> 00:01:24,930
Y el catalizador de toda esta locura es

19
00:01:24,930 --> 00:01:29,269
el desarrollo guiado por especificaciones, o SDD por

20
00:01:29,269 --> 00:01:30,189
sus siglas en inglés.

21
00:01:30,590 --> 00:01:32,849
Vamos a meterle mano a este concepto a

22
00:01:32,849 --> 00:01:36,170
través de SPECKIT, que, bueno, para quien no

23
00:01:36,170 --> 00:01:38,750
lo conozca, es una herramienta de código abierto

24
00:01:38,750 --> 00:01:40,450
de la gente de GitHub que lo ha

25
00:01:40,450 --> 00:01:41,250
reventado.

26
00:01:41,329 --> 00:01:43,750
O sea, más de 16 ,000 estrellas en

27
00:01:43,750 --> 00:01:44,430
su primera semana.

28
00:01:44,689 --> 00:01:45,930
¡Qué barbaridad!

29
00:01:46,629 --> 00:01:47,150
Totalmente.

30
00:01:47,469 --> 00:01:50,069
El objetivo de hoy es entender los mecanismos

31
00:01:50,069 --> 00:01:53,349
profundos que permiten a los equipos dejar de

32
00:01:53,349 --> 00:01:56,349
lado la improvisación y, básicamente, obligar a la

33
00:01:56,349 --> 00:01:58,849
IA a generar sistemas robustos de verdad.

34
00:01:59,409 --> 00:02:01,290
Porque, a ver, la improvisación es justo lo

35
00:02:01,290 --> 00:02:03,150
que ha dominado la industria este último año,

36
00:02:03,269 --> 00:02:03,349
¿no?

37
00:02:03,609 --> 00:02:06,469
Cualquiera que haya estado trasteando con modelos generativos

38
00:02:06,469 --> 00:02:09,569
para crear apps ha terminado, casi seguro, en

39
00:02:09,569 --> 00:02:11,409
el agujero negro este del vibe coding.

40
00:02:11,810 --> 00:02:14,050
Uf, el famoso vibe coding, ¿sí?

41
00:02:14,169 --> 00:02:14,330
Sí.

42
00:02:14,689 --> 00:02:17,509
Escribirle un prompt de dos líneas en plan,

43
00:02:18,449 --> 00:02:20,770
créame un clon de una red social de

44
00:02:20,770 --> 00:02:23,750
fotos y sentarte a esperar un milagro.

45
00:02:23,870 --> 00:02:26,310
Ya, y el espejismo al principio es brutal,

46
00:02:26,449 --> 00:02:26,569
¿eh?

47
00:02:26,610 --> 00:02:29,469
Porque durante los primeros minutos ves la pantalla

48
00:02:29,469 --> 00:02:32,349
llenarse de componentes, de estilos visuales.

49
00:02:32,490 --> 00:02:33,210
Parece magia.

50
00:02:33,349 --> 00:02:34,849
Parece magia pura, exacto.

51
00:02:34,889 --> 00:02:37,849
Pero el problema del vibe coding es que

52
00:02:37,849 --> 00:02:38,669
no tiene cimientos.

53
00:02:38,889 --> 00:02:40,990
O sea, la tercera o cuarta iteración, cuando

54
00:02:40,990 --> 00:02:43,389
intentas meter, no sé, una pasarela de pago

55
00:02:43,389 --> 00:02:46,289
o tocar el sistema de usuarios, ¡boom!, el

56
00:02:46,289 --> 00:02:47,129
proyecto colapsa.

57
00:02:47,210 --> 00:02:49,750
Claro, te empiezan a salir dependencias circulares, el

58
00:02:49,750 --> 00:02:51,370
diseño se rompe por todos lados.

59
00:02:51,729 --> 00:02:53,930
Y el código acaba siendo un laberinto ilegible.

60
00:02:54,129 --> 00:02:56,870
Para visualizarlo un poco, es como intentar construir

61
00:02:56,870 --> 00:03:00,030
una casa gritándole ideas sueltas a un grupo

62
00:03:00,030 --> 00:03:02,330
de obreros que, además, llevan los ojos vendados,

63
00:03:02,430 --> 00:03:05,150
en lugar de, pues eso, darles unos planos

64
00:03:05,150 --> 00:03:06,569
arquitectónicos en condiciones.

65
00:03:07,069 --> 00:03:10,750
Con placer, de forma estadística, la última petición

66
00:03:10,750 --> 00:03:11,349
que le has hecho.

67
00:03:12,210 --> 00:03:13,210
Claro, te dice que sí.

68
00:03:13,389 --> 00:03:13,509
A todo.

69
00:03:13,750 --> 00:03:15,590
Y si le pides un cambio muy radical,

70
00:03:15,830 --> 00:03:18,090
pues lo intenta meter con calzador y te

71
00:03:18,090 --> 00:03:19,889
destroza la lógica que tenía antes.

72
00:03:20,370 --> 00:03:20,810
Exacto.

73
00:03:20,930 --> 00:03:23,090
Y el problema técnico real detrás de esto

74
00:03:23,090 --> 00:03:25,129
es lo que llamamos la degradación del contexto.

75
00:03:25,650 --> 00:03:28,289
A ver, los LLMs tienen una memoria finita.

76
00:03:28,330 --> 00:03:30,289
Si tú llevas un chat de docenas de

77
00:03:30,289 --> 00:03:32,770
mensajes, el modelo empieza a perder el rastro

78
00:03:32,770 --> 00:03:35,550
de las instrucciones originales.

79
00:03:35,750 --> 00:03:37,909
Claro, prioriza lo último que le has dicho.

80
00:03:38,110 --> 00:03:38,569
Eso es.

81
00:03:38,650 --> 00:03:41,409
Y el vibe coding confía ciegamente en que

82
00:03:41,409 --> 00:03:42,909
la máquina se va a acordar de toda

83
00:03:42,909 --> 00:03:45,569
tu estrategia global, cuando su arquitectura no da

84
00:03:45,569 --> 00:03:45,990
para eso.

85
00:03:46,270 --> 00:03:48,169
Y justo ahí es donde entra la interfaz

86
00:03:48,169 --> 00:03:50,370
de línea de comandos de SpecKit, el CLI

87
00:03:50,370 --> 00:03:53,069
llamado Specify, y lo cambia absolutamente todo.

88
00:03:53,250 --> 00:03:55,590
Y mete un cambio que impone una gobernanza

89
00:03:55,590 --> 00:03:56,590
absoluta.

90
00:03:56,610 --> 00:03:57,490
O sea, es una pasada.

91
00:03:57,590 --> 00:04:00,490
De hecho, mirando el flujo de SpecKit, me

92
00:04:00,490 --> 00:04:03,110
llamó muchísimo la atención que el primer paso,

93
00:04:03,289 --> 00:04:05,870
después de iniciar el proyecto, ignora por completo

94
00:04:05,870 --> 00:04:06,270
el código.

95
00:04:06,550 --> 00:04:09,150
O sea, te exige ejecutar un comando que

96
00:04:09,150 --> 00:04:11,530
es speckit .constitution.

97
00:04:11,889 --> 00:04:12,330
Sí.

98
00:04:13,389 --> 00:04:16,290
Crear un archivo Markdown con la constitución del

99
00:04:16,290 --> 00:04:16,589
proyecto.

100
00:04:16,949 --> 00:04:17,329
Eso es.

101
00:04:17,389 --> 00:04:20,050
O sea, las leyes inmutables del sistema, ¿no?

102
00:04:20,209 --> 00:04:22,189
Volviendo a lo de las físicas que decías

103
00:04:22,189 --> 00:04:24,750
antes, es como en un motor de videojuegos.

104
00:04:24,949 --> 00:04:26,910
Si el motor dice que una pared es

105
00:04:26,910 --> 00:04:29,569
sólida, el muñeco no la atraviesa, por mucho

106
00:04:29,569 --> 00:04:30,670
que aporrees el mando.

107
00:04:30,769 --> 00:04:34,970
La constitución en SpecKit, el archivo constitution .md,

108
00:04:35,089 --> 00:04:36,149
pues hace lo mismo.

109
00:04:36,269 --> 00:04:38,089
Son principios innegociables.

110
00:04:38,410 --> 00:04:42,110
Claro, cosas como estándares de accesibilidad, patrones de

111
00:04:42,110 --> 00:04:42,589
diseño.

112
00:04:42,589 --> 00:04:44,670
O directamente, prohibir tecnologías.

113
00:04:45,069 --> 00:04:45,550
Exacto.

114
00:04:45,769 --> 00:04:48,050
Y fíjate en el caso de Dan Delimarsky,

115
00:04:48,189 --> 00:04:51,589
el mantenedor del proyecto, que lo explicaba construyendo

116
00:04:51,589 --> 00:04:52,490
la web de su podcast.

117
00:04:52,829 --> 00:04:55,069
En su constitución, él puso unas reglas de

118
00:04:55,069 --> 00:04:55,430
hierro.

119
00:04:55,589 --> 00:04:58,310
La web tenía que ser estática, cero bases

120
00:04:58,310 --> 00:05:00,810
de datos y JavaScript puro y duro.

121
00:05:00,949 --> 00:05:02,569
Nada de frameworks pesados.

122
00:05:03,029 --> 00:05:05,850
Y eso es brillante, porque así neutralizas el

123
00:05:05,850 --> 00:05:07,509
sesgo que tiene la IA por defecto.

124
00:05:07,670 --> 00:05:10,029
A ver, estos modelos se entrenan con GitHub

125
00:05:10,029 --> 00:05:11,110
y Stack Overflow.

126
00:05:11,329 --> 00:05:12,970
Así que a la mínima… Te van a

127
00:05:12,970 --> 00:05:14,769
querer meter un React y una base de

128
00:05:14,769 --> 00:05:16,910
datos relacional, porque es lo que más ven,

129
00:05:16,990 --> 00:05:17,689
estadísticamente.

130
00:05:18,470 --> 00:05:18,870
Totalmente.

131
00:05:19,089 --> 00:05:21,449
Pero al fijar la regla de entrega estática

132
00:05:21,449 --> 00:05:24,189
pura en ese documento de constitución, el sistema

133
00:05:24,189 --> 00:05:26,269
inyecta eso en el system prompt de cada

134
00:05:26,269 --> 00:05:27,550
maldita llamada al API.

135
00:05:27,709 --> 00:05:28,550
Es como un ancla.

136
00:05:28,810 --> 00:05:30,610
O sea, si dentro de un mes a

137
00:05:30,610 --> 00:05:32,550
alguien se le ocurre pedir una función para,

138
00:05:32,649 --> 00:05:35,610
no sé, guardar episodios favoritos, y a la

139
00:05:35,610 --> 00:05:37,589
IA le parece súper tentador montar una base

140
00:05:37,589 --> 00:05:39,670
de datos en la nube… La constitución le

141
00:05:39,670 --> 00:05:40,449
dice que ni de broma.

142
00:05:41,129 --> 00:05:41,529
Exacto.

143
00:05:41,529 --> 00:05:42,370
Lo bloquea.

144
00:05:42,589 --> 00:05:45,250
Y obliga a la IA a buscarse la

145
00:05:45,250 --> 00:05:46,050
vida de otra forma.

146
00:05:46,170 --> 00:05:48,730
Yo qué sé, usando el almacenamiento local del

147
00:05:48,730 --> 00:05:51,589
navegador, pero siempre respetando la ley.

148
00:05:51,910 --> 00:05:54,050
Y así te cargas la degradación de contexto

149
00:05:54,050 --> 00:05:54,790
de un plumazo.

150
00:05:55,290 --> 00:05:58,310
Pero a ver, poner restricciones no te construye

151
00:05:58,310 --> 00:05:58,610
el producto.

152
00:05:59,129 --> 00:06:01,029
O sea, evitas que se caiga la casa,

153
00:06:01,129 --> 00:06:02,990
pero no defines la lógica de negocio.

154
00:06:03,230 --> 00:06:05,949
Para eso, el framework tiene otro comando, que

155
00:06:05,949 --> 00:06:07,870
es specit .specify.

156
00:06:08,189 --> 00:06:10,430
Aquí es donde defines el qué y el

157
00:06:10,430 --> 00:06:11,430
por qué, ¿verdad?

158
00:06:11,870 --> 00:06:12,509
Eso es.

159
00:06:12,589 --> 00:06:15,610
Se hace mediante historias de usuario y criterios

160
00:06:15,610 --> 00:06:17,949
de aceptación, pero ojo, con una regla de

161
00:06:17,949 --> 00:06:18,050
oro.

162
00:06:18,389 --> 00:06:21,350
Está terminantemente prohibido hablar de tecnología.

163
00:06:21,730 --> 00:06:24,990
Nada de mencionar Python, ni servidores… Nada.

164
00:06:25,170 --> 00:06:25,490
Cero.

165
00:06:26,110 --> 00:06:27,750
A ver, ¿qué yo tengo que hacer de

166
00:06:27,750 --> 00:06:28,810
abogada del diablo, vale?

167
00:06:29,230 --> 00:06:33,550
Porque, metodológicamente, esto de redactar requisitos súper exhaustivos

168
00:06:33,550 --> 00:06:35,870
y blimbar el diseño antes de tirar una

169
00:06:35,870 --> 00:06:37,990
línea de código… Te suena a cascada, ¿no?

170
00:06:38,050 --> 00:06:39,230
Al modelo Waterfall.

171
00:06:39,410 --> 00:06:41,610
Es un poco paradójico que ahora la IA

172
00:06:41,610 --> 00:06:42,430
nos devuelva eso.

173
00:06:42,589 --> 00:06:42,970
¿No crees?

174
00:06:43,089 --> 00:06:43,470
Ya.

175
00:06:43,610 --> 00:06:46,990
A ver, la comparación es inevitable, lo entiendo.

176
00:06:47,389 --> 00:06:49,449
Pero hay una diferencia mecánica brutal.

177
00:06:49,730 --> 00:06:51,910
El problema del Waterfall era el tiempo.

178
00:06:52,629 --> 00:06:56,129
Que te tirabas meses validando documentos entre departamentos.

179
00:06:56,389 --> 00:06:57,569
Claro, el factor humano.

180
00:06:57,810 --> 00:06:58,370
Exacto.

181
00:06:58,709 --> 00:07:02,029
Specit resuelve esa lentitud con el comando specit

182
00:07:02,029 --> 00:07:02,889
.clarify.

183
00:07:03,170 --> 00:07:05,850
O sea, el sistema no coge tu especificación

184
00:07:05,850 --> 00:07:07,389
y asiente como un tonto.

185
00:07:07,649 --> 00:07:11,250
Activa un motor lógico y busca ambigüedades, fallos

186
00:07:11,250 --> 00:07:13,250
o casos límite que tú… No has pensado.

187
00:07:13,310 --> 00:07:15,629
O sea, no se comporta como un ejecutor

188
00:07:15,629 --> 00:07:17,910
servicial, sino que se pone la gorra de

189
00:07:17,910 --> 00:07:19,569
arquitecto o de product manager.

190
00:07:19,970 --> 00:07:20,470
Eso es.

191
00:07:20,730 --> 00:07:22,949
Si le pides un formulario para subir fotos,

192
00:07:23,129 --> 00:07:25,250
la IA te para y te dice, vale,

193
00:07:25,370 --> 00:07:27,110
¿cuál es el peso máximo?

194
00:07:27,310 --> 00:07:28,689
¿Qué formatos admitimos?

195
00:07:28,930 --> 00:07:30,990
¿Qué pasa si el servidor da un timeout?

196
00:07:31,189 --> 00:07:31,750
Qué bueno.

197
00:07:32,050 --> 00:07:34,410
Te fuerza a tapar los agujeros en minutos.

198
00:07:34,990 --> 00:07:37,430
Y claro, una vez que tienes el qué

199
00:07:37,430 --> 00:07:41,430
totalmente definido y aislado de la tecnología, pues

200
00:07:41,430 --> 00:07:42,569
llegamos a la revelación.

201
00:07:42,589 --> 00:07:44,290
La revelación más loca de todo esto del

202
00:07:44,290 --> 00:07:44,790
SDD.

203
00:07:44,889 --> 00:07:47,029
Que el código fuente deja de importar.

204
00:07:47,449 --> 00:07:47,970
Exacto.

205
00:07:47,970 --> 00:07:51,250
El código pasa a ser, bueno, un subproducto

206
00:07:51,250 --> 00:07:51,790
desechable.

207
00:07:52,069 --> 00:07:54,110
Y esto cuesta asimilarlo, ¿eh?

208
00:07:54,170 --> 00:07:56,889
Llevamos 50 años donde el código era el

209
00:07:56,889 --> 00:07:58,329
rey de la empresa tecnológica.

210
00:07:58,629 --> 00:08:00,850
Pero si toda tu lógica está en un

211
00:08:00,850 --> 00:08:03,910
markdown agnóstico, el andamiaje técnico te da igual.

212
00:08:04,089 --> 00:08:04,970
Te da exactamente igual.

213
00:08:05,410 --> 00:08:07,470
Imagínate que tienes algo montado en Next .js

214
00:08:07,470 --> 00:08:10,470
súper complejo y de repente el negocio pide

215
00:08:10,470 --> 00:08:12,569
ir a toda pastilla con contenido estático.

216
00:08:13,149 --> 00:08:15,490
Hacer eso hoy en día es reescribirlo todo

217
00:08:15,490 --> 00:08:16,170
durante meses.

218
00:08:16,509 --> 00:08:17,209
Ya te digo.

219
00:08:17,410 --> 00:08:20,410
Pero con este paradigma, tu spec .md no

220
00:08:20,410 --> 00:08:20,769
se toca.

221
00:08:21,149 --> 00:08:23,389
Cambias el mandato técnico y el sistema te

222
00:08:23,389 --> 00:08:24,709
regenera la aplicación entera.

223
00:08:24,949 --> 00:08:27,170
El código acaba siendo solo el resultado de

224
00:08:27,170 --> 00:08:28,589
una compilación, ¿sabes?

225
00:08:28,670 --> 00:08:30,850
Como el binario que te escupe, C++.

226
00:08:31,329 --> 00:08:33,389
Lo único que vale oro o aura es

227
00:08:33,389 --> 00:08:34,370
la especificación.

228
00:08:34,529 --> 00:08:35,009
Vale.

229
00:08:35,110 --> 00:08:37,230
Pero bajemos un poco a la tierra, que

230
00:08:37,230 --> 00:08:38,210
aquí hay un salto.

231
00:08:38,330 --> 00:08:41,169
Tenemos la constitución, tenemos las especificaciones.

232
00:08:41,309 --> 00:08:42,490
Pero, ¿cómo pasa?

233
00:08:42,590 --> 00:08:45,029
¿De esos textos lógicos a carpetas con código

234
00:08:45,029 --> 00:08:45,909
real que funcione?

235
00:08:46,169 --> 00:08:48,789
Bueno, esa coreografía tiene dos pasos.

236
00:08:49,250 --> 00:08:52,769
Primero tiras specitplan, que coge tus requisitos y

237
00:08:52,769 --> 00:08:54,649
define la arquitectura técnica formal.

238
00:08:55,450 --> 00:08:57,429
Enrutamiento, estado, dependencias.

239
00:08:58,169 --> 00:09:01,070
Y luego entra el verdadero peso pesado, el

240
00:09:01,070 --> 00:09:03,029
comando specit .tasks.

241
00:09:03,370 --> 00:09:05,570
Que, ojo, no te hace una lista de

242
00:09:05,570 --> 00:09:06,549
la compra de tareas.

243
00:09:06,669 --> 00:09:09,070
Te monta un grafo acíclico dirigido.

244
00:09:09,190 --> 00:09:09,690
Toma ya.

245
00:09:09,909 --> 00:09:10,570
Sí, sí.

246
00:09:10,669 --> 00:09:12,570
Una estructura matemática para matemáticas.

247
00:09:12,590 --> 00:09:13,850
Para mapear qué depende de qué.

248
00:09:13,950 --> 00:09:16,409
Y eso, claro, te evita las típicas condiciones

249
00:09:16,409 --> 00:09:17,409
de carrera, ¿no?

250
00:09:17,629 --> 00:09:19,750
La máquina entiende que no puede montar la

251
00:09:19,750 --> 00:09:22,070
interfaz de la lista de usuarios si antes

252
00:09:22,070 --> 00:09:24,129
no ha diseñado la base de datos de

253
00:09:24,129 --> 00:09:24,710
sus usuarios.

254
00:09:24,950 --> 00:09:25,429
Exactamente.

255
00:09:25,809 --> 00:09:27,909
Te hace una topología perfecta.

256
00:09:29,190 --> 00:09:32,110
Incluso detecta qué tareas son independientes entre sí.

257
00:09:32,309 --> 00:09:34,549
Y les pone una etiqueta de paralelo, una

258
00:09:34,549 --> 00:09:35,730
P entre corchetes.

259
00:09:36,269 --> 00:09:38,970
Pero, ojo, la verdadera magia aquí es cómo

260
00:09:38,970 --> 00:09:42,049
te impone el TDD, el desarrollo guiado por

261
00:09:42,049 --> 00:09:42,450
pruebas.

262
00:09:42,590 --> 00:09:44,850
Uy, el ciclo este de rojo -verde y

263
00:09:44,850 --> 00:09:45,529
refactorizar.

264
00:09:45,649 --> 00:09:46,070
Ese mismo.

265
00:09:46,370 --> 00:09:49,169
El plan exige que la IA escriba primero

266
00:09:49,169 --> 00:09:51,909
el test unitario, lo ejecute y que falle.

267
00:09:52,149 --> 00:09:54,529
Si no hay un test fallando, el sistema

268
00:09:54,529 --> 00:09:56,090
bloquea la escritura del código.

269
00:09:56,289 --> 00:09:58,370
Es un filtro implacable.

270
00:09:58,549 --> 00:09:59,250
Qué maravilla.

271
00:09:59,370 --> 00:10:02,610
Y fíjate, leyendo la documentación de Dan Delimarsky,

272
00:10:02,710 --> 00:10:06,049
menciona una técnica súper interesante gracias a dividir

273
00:10:06,049 --> 00:10:06,950
tanto las tareas.

274
00:10:07,070 --> 00:10:09,809
Como todo va por archivos de texto, tú

275
00:10:09,809 --> 00:10:11,710
puedes pausar la cosa y cambiar el modelo

276
00:10:11,710 --> 00:10:12,850
de IA a mitad de camino.

277
00:10:13,110 --> 00:10:14,029
Ostras, claro.

278
00:10:14,590 --> 00:10:16,769
Optimización pura de costes y capacidades.

279
00:10:17,149 --> 00:10:18,070
Eso es.

280
00:10:18,250 --> 00:10:21,409
Para montar el grafo de dependencias o pensar

281
00:10:21,409 --> 00:10:24,730
la constitución, necesitas un modelo que razones súper

282
00:10:24,730 --> 00:10:27,389
bien a nivel sistémico, tipo un GPT -5,

283
00:10:27,490 --> 00:10:27,590
¿no?

284
00:10:27,769 --> 00:10:28,149
Sí.

285
00:10:28,289 --> 00:10:30,049
Pues usas ese para planificar.

286
00:10:30,269 --> 00:10:32,309
Y cuando ya tienes el archivo de tareas

287
00:10:32,309 --> 00:10:33,629
perfecto, pausas.

288
00:10:33,789 --> 00:10:35,870
Cambias el motor a algo como Clot 3

289
00:10:35,870 --> 00:10:38,710
.5 Sonet, que escribiendo sintaxis pura es un

290
00:10:38,710 --> 00:10:39,049
avión.

291
00:10:39,110 --> 00:10:40,610
Y lanzas el comando final.

292
00:10:40,870 --> 00:10:42,129
El spekit .es.

293
00:10:42,129 --> 00:10:45,149
O sea, usas al mejor arquitecto para pensar

294
00:10:45,149 --> 00:10:47,809
y al mejor albañil para poner los ladrillos.

295
00:10:47,950 --> 00:10:48,370
Tal cual.

296
00:10:48,470 --> 00:10:52,169
Pero oye, sobre ese comando spekit .implement, yo

297
00:10:52,169 --> 00:10:54,549
al principio pensaba que esto mandaba los archivos

298
00:10:54,549 --> 00:10:56,049
a un servidor en la nube y te

299
00:10:56,049 --> 00:10:57,289
devolvía un zip con la app.

300
00:10:57,730 --> 00:10:59,190
Ah, no, no, no, que va.

301
00:10:59,289 --> 00:11:00,970
Esto ocurre en tu propia máquina.

302
00:11:01,250 --> 00:11:03,330
O sea, ¿tiene permisos para ejecutar cosas en

303
00:11:03,330 --> 00:11:03,750
mi terminal?

304
00:11:04,009 --> 00:11:04,269
Sí.

305
00:11:04,610 --> 00:11:06,629
Interactúa con tu sistema de archivos local.

306
00:11:07,210 --> 00:11:08,649
Lanza procesos reales.

307
00:11:08,669 --> 00:11:10,370
Te instala paquetes de NPM.

308
00:11:10,570 --> 00:11:11,789
Te compila la app.

309
00:11:12,129 --> 00:11:13,870
O te corre un lighthouse para ver el

310
00:11:13,870 --> 00:11:14,970
rendimiento en tiempo real.

311
00:11:15,190 --> 00:11:16,029
Todo en local.

312
00:11:16,690 --> 00:11:17,470
Madre mía.

313
00:11:17,529 --> 00:11:19,809
A ver, eso está genial porque mantienes tú

314
00:11:19,809 --> 00:11:22,350
el control y puedes revisar los archivos antes

315
00:11:22,350 --> 00:11:23,129
de hacer un commit.

316
00:11:23,549 --> 00:11:26,629
Pero a nivel de seguridad, tela.

317
00:11:26,870 --> 00:11:29,029
Ahora, también te digo, todo este flujo es

318
00:11:29,029 --> 00:11:31,190
precioso en un entorno ideal, pero las empresas

319
00:11:31,190 --> 00:11:32,669
tienen herramientas muy arcaicas.

320
00:11:32,950 --> 00:11:35,250
Si esto fuera un sistema cerrado, nadie lo

321
00:11:35,250 --> 00:11:35,649
usaría.

322
00:11:35,809 --> 00:11:37,549
Y por eso se llama SpecKit.

323
00:11:37,830 --> 00:11:40,769
Su arquitectura interna tiene un sistema de prioridades

324
00:11:40,769 --> 00:11:42,110
que te permite anular casi...

325
00:11:42,129 --> 00:11:43,409
casi todo mediante dos cosas.

326
00:11:44,129 --> 00:11:45,190
Extensiones y presets.

327
00:11:45,549 --> 00:11:47,590
A ver, las extensiones me las imagino.

328
00:11:47,629 --> 00:11:49,289
Para conectar con el mundo real, ¿no?

329
00:11:49,590 --> 00:11:50,129
Exacto.

330
00:11:50,129 --> 00:11:51,309
Para tirar muros.

331
00:11:51,450 --> 00:11:54,070
La comunidad ya ha montado integraciones con Azure

332
00:11:54,070 --> 00:11:55,090
DevOps con Jira.

333
00:11:55,289 --> 00:11:58,490
Claro, el sistema genera las tareas técnicas y

334
00:11:58,490 --> 00:12:01,769
la extensión te las crea automáticamente, como tickets

335
00:12:01,769 --> 00:12:03,889
en el tablero del proyecto de la empresa.

336
00:12:04,230 --> 00:12:04,730
Eso es.

337
00:12:04,769 --> 00:12:07,909
O extensiones para meter flujos de QA corporativos

338
00:12:07,909 --> 00:12:08,590
automáticos.

339
00:12:08,950 --> 00:12:11,870
Pero luego están los presets, que esto sí

340
00:12:11,870 --> 00:12:12,110
que es...

341
00:12:12,110 --> 00:12:12,789
Es profundo.

342
00:12:12,870 --> 00:12:15,789
No añaden herramientas, sino que le cambian el

343
00:12:15,789 --> 00:12:16,669
cerebro al sistema.

344
00:12:17,250 --> 00:12:18,970
Alteran cómo procesa la información.

345
00:12:19,370 --> 00:12:22,470
Hay presets corporativos para temas legales o financieros,

346
00:12:22,490 --> 00:12:22,730
¿verdad?

347
00:12:22,889 --> 00:12:23,230
Sí.

348
00:12:23,309 --> 00:12:25,850
Te fuerzan a cumplir estándares muy locos.

349
00:12:26,009 --> 00:12:28,610
Pero a ver, los más bestias son los

350
00:12:28,610 --> 00:12:30,610
que la comunidad ha llevado al límite del

351
00:12:30,610 --> 00:12:31,129
absurdo.

352
00:12:31,269 --> 00:12:34,210
O sea, fíjate, en la propia documentación oficial

353
00:12:34,210 --> 00:12:36,710
tienen un preset que se llama Habla Pirata.

354
00:12:36,850 --> 00:12:37,330
Ah, sí.

355
00:12:37,429 --> 00:12:38,210
El Pirate Speak.

356
00:12:38,450 --> 00:12:39,250
Es buenísimo.

357
00:12:39,429 --> 00:12:40,450
Es que es de locos.

358
00:12:40,470 --> 00:12:43,210
Tú activas eso y el sistema sigue programando

359
00:12:43,210 --> 00:12:46,809
perfecto, pero todo el marco conceptual se disfraza

360
00:12:46,809 --> 00:12:48,269
con palabras de corsarios.

361
00:12:48,429 --> 00:12:48,909
Sí, sí.

362
00:12:48,970 --> 00:12:53,009
Las especificaciones pasan a llamarse manifiestos de viaje,

363
00:12:53,269 --> 00:12:56,409
la arquitectura es el plan de batalla y

364
00:12:56,409 --> 00:12:59,009
las tareas son asignaciones de la tripulación.

365
00:12:59,210 --> 00:13:02,490
La IA te monta una app moderna, pero

366
00:13:02,490 --> 00:13:04,529
hablando como un pirata del siglo XVII.

367
00:13:04,889 --> 00:13:07,470
Y, a ver, parece una fricada de programadores,

368
00:13:07,490 --> 00:13:09,350
que lo es, pero demuestra algo vital.

369
00:13:09,509 --> 00:13:11,470
La separación total entre la capa...

370
00:13:11,490 --> 00:13:12,929
...la capa semántica y la capa sintáctica.

371
00:13:13,470 --> 00:13:14,850
Ese es el punto clave.

372
00:13:15,009 --> 00:13:15,190
Claro.

373
00:13:15,750 --> 00:13:18,230
SpecKit obliga a la IA, mediante JSON súper

374
00:13:18,230 --> 00:13:20,509
rígidos, a usar el tono pirata para los

375
00:13:20,509 --> 00:13:23,549
comentarios, los textos, los botones, pero al mismo

376
00:13:23,549 --> 00:13:25,610
tiempo le impone una disciplina brutal en la

377
00:13:25,610 --> 00:13:26,009
sintaxis.

378
00:13:26,309 --> 00:13:28,549
El código en Python o React tiene que

379
00:13:28,549 --> 00:13:30,830
ser matemáticamente perfecto para que compile.

380
00:13:31,169 --> 00:13:34,230
O sea, consiguen que un LLM, que tiende

381
00:13:34,230 --> 00:13:37,850
a alucinar y mezclar cosas, mantenga esa frontera

382
00:13:37,850 --> 00:13:42,190
impermeable entre su creatividad pirata y el rigor

383
00:13:42,190 --> 00:13:43,009
de compilación.

384
00:13:43,389 --> 00:13:43,950
Exactamente.

385
00:13:44,049 --> 00:13:46,350
Eso demuestra un control absoluto.

386
00:13:46,429 --> 00:13:48,429
Y, rizando el rizo, he visto que hay

387
00:13:48,429 --> 00:13:51,429
alguien que ha usado un preset para escribir

388
00:13:51,429 --> 00:13:52,610
libros de ficción.

389
00:13:52,889 --> 00:13:53,490
Madre mía.

390
00:13:53,750 --> 00:13:54,289
Sí, sí.

391
00:13:54,389 --> 00:13:56,970
O sea, han cogido este framework de ingeniería

392
00:13:56,970 --> 00:13:59,070
de software y lo han transformado en un

393
00:13:59,070 --> 00:13:59,929
motor narrativo.

394
00:14:00,509 --> 00:14:03,009
Las funciones de código son los arcos de

395
00:14:03,009 --> 00:14:03,570
los personajes.

396
00:14:03,909 --> 00:14:06,750
La Constitución dicta las reglas de ese mundo

397
00:14:06,750 --> 00:14:10,070
de fantasía y usan el TDD para asegurarse

398
00:14:10,070 --> 00:14:11,769
de que no hay agujeros de guión.

399
00:14:11,870 --> 00:14:13,070
Es que eso te dice lo que es

400
00:14:13,070 --> 00:14:13,970
realmente SpecKit.

401
00:14:14,110 --> 00:14:15,529
No es solo para hacer webs.

402
00:14:15,769 --> 00:14:18,870
Es un motor universal para la resolución algorítmica

403
00:14:18,870 --> 00:14:19,909
de problemas complejos.

404
00:14:20,009 --> 00:14:21,669
Da igual si quieres montar el sistema de

405
00:14:21,669 --> 00:14:23,409
un banco o escribir una novela.

406
00:14:23,470 --> 00:14:25,629
Coges un problema gigante, lo divides en partes

407
00:14:25,629 --> 00:14:27,889
pequeñas, verificables y en paralelo.

408
00:14:28,570 --> 00:14:31,289
Y, uff, a ver, esto nos lleva a

409
00:14:31,289 --> 00:14:32,909
la gran reflexión final, ¿no?

410
00:14:33,029 --> 00:14:34,710
Sí, el futuro del sector.

411
00:14:34,970 --> 00:14:38,990
Claro, si el SDD consigue abstraer por completo

412
00:14:38,990 --> 00:14:42,309
lo que queremos hacer del código máquina, ¿dónde

413
00:14:42,309 --> 00:14:44,789
deja esto a los millones de profesionales que

414
00:14:44,789 --> 00:14:46,870
se han ganado la vida memorizando lenguajes de

415
00:14:46,870 --> 00:14:47,389
programación?

416
00:14:48,110 --> 00:14:51,210
Pues, sinceramente, nos asomamos a una reestructuración total

417
00:14:51,210 --> 00:14:51,929
de la informática.

418
00:14:52,169 --> 00:14:54,330
Hasta ahora, el mercado te pagaba muy bien

419
00:14:54,330 --> 00:14:56,629
por conocer las entrañas de la sintaxis, por

420
00:14:56,629 --> 00:14:58,309
saber dónde poner el punto y coma o

421
00:14:58,309 --> 00:14:59,409
cómo gestionar la memoria.

422
00:14:59,610 --> 00:14:59,830
Ya.

423
00:14:59,950 --> 00:15:02,230
Pero si la IA asune esa ejecución manual,

424
00:15:02,470 --> 00:15:04,690
el valor de picar código cae en picado.

425
00:15:04,809 --> 00:15:06,870
La competencia clave ahora va a ser la

426
00:15:06,870 --> 00:15:10,590
claridad de pensamiento estructural, saber definir arquitecturas, comunicarte

427
00:15:10,590 --> 00:15:12,929
sin ambigüedades y controlar esta automatización.

428
00:15:13,169 --> 00:15:15,350
O sea, pasas de ser un traductor de

429
00:15:15,350 --> 00:15:17,509
instrucciones a un director de orquesta.

430
00:15:17,809 --> 00:15:21,049
Y, bueno, eso deja una pregunta fascinante para

431
00:15:21,049 --> 00:15:22,169
quienes nos escuchan hoy.

432
00:15:22,629 --> 00:15:25,250
Si ahora mismo un texto bien estructurado en

433
00:15:25,250 --> 00:15:29,129
español puede gobernar y generar aplicaciones enteras de

434
00:15:29,129 --> 00:15:32,049
forma predecible, matando el caos este del vibe

435
00:15:32,049 --> 00:15:34,769
coding, estamos en un punto de no retorno.

436
00:15:34,990 --> 00:15:36,470
Da que pensar, desde luego.

437
00:15:36,750 --> 00:15:38,870
A ver, si lenguajes que hoy nos parecen

438
00:15:38,870 --> 00:15:43,330
sagrados, tipo Python, Java o Rust, acaban relegados

439
00:15:43,330 --> 00:15:46,029
al mismo sótano oscuro que el lenguaje ensamblador.

440
00:15:46,370 --> 00:15:48,649
Igual resulta que, dentro de muy poco, el

441
00:15:48,649 --> 00:15:51,789
lenguaje natural bien pensado sea el único lenguaje

442
00:15:51,789 --> 00:15:53,970
de programación que un humano necesite dominar.

443
00:15:54,230 --> 00:15:55,629
Totalmente posible, ¿ya ves?

444
00:15:55,830 --> 00:15:57,950
Que las voces que oyéis han sido generadas

445
00:15:57,950 --> 00:15:59,610
por la IA de Notebook LM.

446
00:15:59,889 --> 00:16:02,710
Y que dirigiendo el podcast se encuentra Julio

447
00:16:02,710 --> 00:16:05,070
Pablo Vázquez, un humano que te envía saludos.

448
00:16:05,149 --> 00:16:08,009
En caso de error, probablemente sean errores humanos.

449
00:16:08,009 --> 00:16:09,350
¡Nos escuchamos!

