fwinit 1.5.3 → 1.5.4
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.
- package/README.md +8 -6
- package/dist/index.js +12 -4
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -35,11 +35,12 @@ fwinit fullstack mi-proyecto -b fastify -f react-native -p pnpm
|
|
|
35
35
|
# Ver templates disponibles (agrupados por capa)
|
|
36
36
|
fwinit list
|
|
37
37
|
|
|
38
|
-
# Instalar skills globalmente (OpenCode, Pi, Agent Skills) — interactivo
|
|
38
|
+
# Instalar skills globalmente (OpenCode, Pi, Gentle Shell, Agent Skills) — interactivo
|
|
39
39
|
fwinit skills
|
|
40
40
|
|
|
41
41
|
# Instalar skills globalmente sin preguntas (modo scripting/CI)
|
|
42
42
|
fwinit skills --global opencode,pi # o: --global all
|
|
43
|
+
fwinit skills --global gentle-shell
|
|
43
44
|
|
|
44
45
|
# Instalar solo algunas skills
|
|
45
46
|
fwinit skills --global all --only create-specs,design
|
|
@@ -80,9 +81,10 @@ Pregunta qué backend querés (ASP.NET, Express, Fastify, Node.js Vanilla) y qu
|
|
|
80
81
|
mi-proyecto/
|
|
81
82
|
├── backend/ # API (template elegido — trae su DB: Prisma o EF)
|
|
82
83
|
├── frontend/ # App (template frontend elegido)
|
|
83
|
-
├── .gitignore # .atl/ · odd (.opencode/ y .
|
|
84
|
-
├── .opencode/ # Skills de
|
|
85
|
-
├── .pi/ # Mismo bundle
|
|
84
|
+
├── .gitignore # .atl/ · odd (.opencode/, .pi/ y .agents/ SÍ se versionan)
|
|
85
|
+
├── .opencode/ # Skills de OpenCode (create-specs, create-specs-from-code, create-prompt + biblioteca de diseño)
|
|
86
|
+
├── .pi/ # Mismo bundle para Pi y Gentle Shell (skills + prompt templates)
|
|
87
|
+
├── .agents/ # Mismo bundle para Freebuff y agentes Agent Skills
|
|
86
88
|
├── README.md # Cómo correr backend y frontend
|
|
87
89
|
└── specs/ # La creás con /create-specs
|
|
88
90
|
```
|
|
@@ -138,12 +140,12 @@ El runtime `bun` de un template se porta automáticamente a `node` (npm/pnpm) si
|
|
|
138
140
|
2. Extrae y copia el template (o los dos, `backend/` + `frontend/`) al proyecto
|
|
139
141
|
3. Sustituye el nombre del proyecto (package.json, app.json de Expo, proyectos ASP.NET con "Example")
|
|
140
142
|
4. Si corresponde, porta el template de runtime bun a node (npm/pnpm)
|
|
141
|
-
5. Instala `.opencode/` y `.
|
|
143
|
+
5. Instala `.opencode/`, `.pi/` y `.agents/` con las skills `create-specs` y `create-specs-from-code`, sus comandos (`/create-specs` rutea entre ambos según el estado del repo) y la biblioteca de diseño (mismo bundle para OpenCode, Pi/Gentle Shell y Agent Skills: elegí el agente que quieras)
|
|
142
144
|
6. Limpia los lock files (cada proyecto instala los suyos)
|
|
143
145
|
7. Si lo elegís (o pasás `--git`), inicializa un repositorio git en la raíz
|
|
144
146
|
8. Te muestra los próximos pasos (install y dev de cada carpeta)
|
|
145
147
|
|
|
146
|
-
En modo fullstack (y single con layout de capa) crea además `.gitignore` y `README.md` en la raíz: el `.gitignore` excluye solo el estado local de AI (`.atl/` y `odd`). `.opencode/` y `.
|
|
148
|
+
En modo fullstack (y single con layout de capa) crea además `.gitignore` y `README.md` en la raíz: el `.gitignore` excluye solo el estado local de AI (`.atl/` y `odd`). `.opencode/`, `.pi/` y `.agents/` NO se ignoran — los bundles de skills se versionan con el proyecto.
|
|
147
149
|
|
|
148
150
|
## Desarrollo
|
|
149
151
|
|
package/dist/index.js
CHANGED
|
@@ -455,7 +455,7 @@ async function askGlobalSkillsToo() {
|
|
|
455
455
|
{
|
|
456
456
|
type: "confirm",
|
|
457
457
|
name: "global",
|
|
458
|
-
message: "\xBFInstalar las skills tambi\xE9n globalmente (OpenCode/Pi/Agent Skills)?",
|
|
458
|
+
message: "\xBFInstalar las skills tambi\xE9n globalmente (OpenCode/Pi/Gentle Shell/Agent Skills)?",
|
|
459
459
|
default: false
|
|
460
460
|
}
|
|
461
461
|
]);
|
|
@@ -468,6 +468,7 @@ import { join as join2 } from "path";
|
|
|
468
468
|
function resolveGlobalTargets() {
|
|
469
469
|
const home = process.env.HOME;
|
|
470
470
|
if (!home) return [];
|
|
471
|
+
const gentleShellRoot = process.env.GENTLE_SHELL_HOME || join2(home, ".gentle-shell", "agent");
|
|
471
472
|
return [
|
|
472
473
|
{
|
|
473
474
|
id: "opencode",
|
|
@@ -483,6 +484,13 @@ function resolveGlobalTargets() {
|
|
|
483
484
|
skillsDir: "skills",
|
|
484
485
|
commandsDir: "prompts"
|
|
485
486
|
},
|
|
487
|
+
{
|
|
488
|
+
id: "gentle-shell",
|
|
489
|
+
label: `Gentle Shell global (${gentleShellRoot})`,
|
|
490
|
+
root: gentleShellRoot,
|
|
491
|
+
skillsDir: "skills",
|
|
492
|
+
commandsDir: "prompts"
|
|
493
|
+
},
|
|
486
494
|
{
|
|
487
495
|
id: "agents",
|
|
488
496
|
label: `Agent Skills global (${home}/.agents/skills)`,
|
|
@@ -809,7 +817,7 @@ async function writeRootFiles(info) {
|
|
|
809
817
|
"",
|
|
810
818
|
`- \`backend/\` \u2014 ${info.backend.description}`,
|
|
811
819
|
`- \`frontend/\` \u2014 ${info.frontend.description}`,
|
|
812
|
-
"- `.opencode/`, `.pi/` y `.agents/` \u2014 skills de agentes: `/create-prompt` para detallar tu idea, `/create-specs` para generar las specs, `/create-specs-from-code` para documentar un proyecto que ya existe, + biblioteca de dise\xF1o (dark-luxury, minimal-dashboard, minimal-light, neo-brutalist, glassmorphism). Mismo bundle en las 3 ubicaciones",
|
|
820
|
+
"- `.opencode/`, `.pi/` y `.agents/` \u2014 skills de agentes: `/create-prompt` para detallar tu idea, `/create-specs` para generar las specs, `/create-specs-from-code` para documentar un proyecto que ya existe, + biblioteca de dise\xF1o (dark-luxury, minimal-dashboard, minimal-light, neo-brutalist, glassmorphism). Mismo bundle en las 3 ubicaciones: OpenCode lee `.opencode/`; Pi y Gentle Shell leen `.pi/` (skills + prompt templates); los agentes Agent Skills leen `.agents/`",
|
|
813
821
|
"- `specs/` \u2014 especificaciones del proyecto",
|
|
814
822
|
"",
|
|
815
823
|
"## Backend",
|
|
@@ -1045,10 +1053,10 @@ async function runSkillsFlow(opts = {}) {
|
|
|
1045
1053
|
return true;
|
|
1046
1054
|
}
|
|
1047
1055
|
program.command("skills").description(
|
|
1048
|
-
"Instalar o eliminar las skills del repo en ubicaciones globales (OpenCode, Pi, Agent Skills)"
|
|
1056
|
+
"Instalar o eliminar las skills del repo en ubicaciones globales (OpenCode, Pi, Gentle Shell, Agent Skills)"
|
|
1049
1057
|
).option(
|
|
1050
1058
|
"-g, --global <targets>",
|
|
1051
|
-
"Destinos separados por coma: opencode, pi, agents (o 'all'). Saltea la pregunta"
|
|
1059
|
+
"Destinos separados por coma: opencode, pi, gentle-shell, agents (o 'all'). Saltea la pregunta"
|
|
1052
1060
|
).option(
|
|
1053
1061
|
"-o, --only <skills>",
|
|
1054
1062
|
"Solo estas skills, separadas por coma: create-specs, create-specs-from-code, design"
|