Deja trabajo apuntado dentro del IDE de PowerBuilder, sin abrir el IDE. Un skill de Claude Code para que sea la IA quien busque por tu código y te deje los resultados en la To-Do List: abres PowerBuilder y los tienes ahí, cada uno en su objeto y en su línea.
Le pides a Claude Code «busca dónde se usa of_calcular» y te devuelve catorce sitios,
con su fichero y su número de línea. Perfectos. Y ahora te toca abrirlos a mano, uno por
uno, en el IDE.
La To-Do List de PowerBuilder (Tools > To-Do List) lleva ahí desde siempre y hace
exactamente lo que hace falta: cada entrada guarda un enlace a un objeto y, al abrirla, el
IDE te lleva a él. Lo que no hace el IDE es dejarte apuntar algo que todavía no has
abierto — su opción Add Linked enlaza el painter que tengas delante.
Esto llena esa lista desde fuera.
# 1. ¿Qué hay por aquí?
$ python pbtodo.py info
Modo: solucion
Target: C:\...\PyPbExample\pypbexample.pbproj
IDE abierto: no
# 2. Apuntar tres sitios (dry-run: todavía no toca nada)
$ python pbtodo.py add w_main:159 w_main:160 n_cst_pyton_excel:100 \
--texto "Usos de of_set_celda" --fuente
Entradas: 0 -> 3
Se apuntarian: Usos de of_set_celda - w_main:159, ... - w_main:160, ... - n_cst_pyton_excel:100
(dry-run: no he tocado nada. Anade --escribir para hacerlo de verdad.)
# 3. Ahora de verdad
$ python pbtodo.py add w_main:159 w_main:160 n_cst_pyton_excel:100 \
--texto "Usos de of_set_celda" --fuente --escribir
Apuntadas: 3
Backup: C:\Users\...\AppData\Local\pbtodo\backups\todo_pypbexample_20260809.regAbres PowerBuilder, Tools > To-Do List, y ahí están los tres. Doble clic y estás dentro.
Ojo: este repo no es una solución de PowerBuilder que abras desde el IDE, como el resto de ejemplos del blog. No hay
.pbslnni PowerScript: es un skill de Claude Code (Python + unSKILL.md). Lo que se prueba con él sí es PowerBuilder.
Clónalo directamente en tu carpeta de skills, con el nombre del skill (pb-todo) y no
con el del repo:
git clone https://github.com/rasanfe/PbTodoList.git "%USERPROFILE%\.claude\skills\pb-todo"También puedes pedírselo a Claude Code —«clona este repo en mi carpeta de skills como
pb-todo»—: es un git clone normal, te pedirá permiso y lo deja puesto. Para que valga
solo en un proyecto, la misma carpeta dentro de su .claude\skills.
Y a partir de ahí, en lenguaje natural:
«busca dónde se usa
of_set_celday déjame los sitios apuntados en el To-Do»
Requisitos: Windows, PowerBuilder instalado (probado en 2025 R2) y Python 3.8+. Sin
dependencias: solo biblioteca estándar. Si tienes PB en una ruta rara, apúntala con la
variable de entorno PB_HOME.
| Comando | Qué hace |
|---|---|
info |
qué proyecto PB hay aquí, versiones instaladas, si el IDE está abierto |
find <patrón> |
busca objetos por nombre (admite * y ?) |
list |
lo que hay ahora en la To-Do List |
add <objeto[:línea]>... |
apunta entradas |
done <patrón> |
marca la casilla (--no para desmarcar) |
rm <patrón> · --hechas · --todas |
borra entradas |
open <objeto> --lanzar |
abre el IDE plantado en ese objeto |
Añade --json a cualquiera para una salida fácil de parsear, y --raiz para trabajar
sobre otra carpeta.
PowerBuilder tiene la lista en memoria y al cerrar escribe su copia encima: no ve lo que metas por fuera y además te lo borra. Está comprobado. Por eso los scripts se niegan solos si detectan el IDE corriendo (leer sí te dejan; escribir no).
Dicho de otro modo: esto sirve para preparar trabajo antes de abrir el IDE, no para pilotarlo en caliente. Escribiendo con el IDE cerrado, lo tuyo y lo del IDE conviven sin pisarse.
| Abre | line= cuenta |
|
|---|---|---|
| por defecto | el painter (admite --columna) |
líneas del script |
--fuente |
el Edit Source | líneas del fichero .sr* |
La misma línea 6 cae en dos sitios distintos, porque cada ventana cuenta las líneas de lo
que enseña. Si el número lo sacaste leyendo el fichero, usa --fuente.
| Fichero | Responsabilidad |
|---|---|
todolist.py |
el registro: dónde vive la clave, el formato de las entradas y el enlace |
pbfind.py |
el disco: encontrar workspace, targets, .pbl y objetos |
pbide.py |
la instalación de PB y abrir un objeto por línea de comandos |
pbtodo.py |
la CLI que junta las tres |
SKILL.md |
el skill de Claude Code |
Todo lo que escribe es dry-run por defecto y exporta la clave a un .reg en
%LOCALAPPDATA%\pbtodo\backups antes de tocarla.
Esto escribe en HKCU\Software\Sybase\PowerBuilder\<versión>\.... No es una API pública
ni algo que Appeon se haya comprometido a mantener, así que puede cambiar en cualquier
versión: la documentación explica la función y cómo se usa desde el IDE, que es para lo que
está pensada, pero no entra en el almacenamiento, y ORCA tampoco expone nada de esto. Lo
que hay aquí está comprobado contra el registro real, no supuesto.
A Roland Smith, de Topwiz Software: su PBSearch tiene un botón «To Do List» que es donde muchos descubrimos que esta ventana servía para algo.
MIT — Ramón San Félix, 2026.
📖 Artículo completo con toda la historia y los detalles: Usando To-Do List de PowerBuilder con Claude Code Skill