fwinit 1.6.0 → 1.6.2
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 +2 -2
- package/dist/index.js +17 -10
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -86,7 +86,7 @@ mi-proyecto/
|
|
|
86
86
|
├── backend/ # API (template elegido — trae su DB: Prisma o EF)
|
|
87
87
|
├── frontend/ # App (template frontend elegido)
|
|
88
88
|
├── .gitignore # .atl/ · odd (.opencode/, .pi/ y .agents/ SÍ se versionan)
|
|
89
|
-
├── .opencode/ # Skills de OpenCode (create-specs, create-specs-from-code, create-prompt
|
|
89
|
+
├── .opencode/ # Skills de OpenCode (create-specs, create-specs-from-code, create-prompt, biblioteca de diseño y catálogo ui-ux-pro-max)
|
|
90
90
|
├── .pi/ # Mismo bundle para Pi y Gentle Shell (skills + prompt templates)
|
|
91
91
|
├── .agents/ # Mismo bundle para Freebuff y agentes Agent Skills
|
|
92
92
|
├── README.md # Cómo correr backend y frontend
|
|
@@ -148,7 +148,7 @@ El runtime `bun` de un template se porta automáticamente a `node` (npm/pnpm) si
|
|
|
148
148
|
2. Extrae y copia el template (o los dos, `backend/` + `frontend/`) al proyecto
|
|
149
149
|
3. Sustituye el nombre del proyecto (package.json, app.json de Expo, proyectos ASP.NET con "Example", y en Flutter el paquete Dart, los imports, los bundle ids nativos y los nombres de binario)
|
|
150
150
|
4. Si corresponde, porta el template de runtime bun a node (npm/pnpm)
|
|
151
|
-
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)
|
|
151
|
+
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), la biblioteca de diseño y el catálogo `ui-ux-pro-max` (mismo bundle para OpenCode, Pi/Gentle Shell y Agent Skills: elegí el agente que quieras)
|
|
152
152
|
6. Limpia los lock files (cada proyecto instala los suyos; incluye `pubspec.lock` en Flutter)
|
|
153
153
|
7. Si lo elegís (o pasás `--git`), inicializa un repositorio git en la raíz
|
|
154
154
|
8. Te muestra los próximos pasos (install y dev de cada carpeta)
|
package/dist/index.js
CHANGED
|
@@ -656,6 +656,13 @@ var AGENT_BUNDLE = [
|
|
|
656
656
|
{
|
|
657
657
|
// Biblioteca de estilos: skills/design/ con una subskill por estilo y sus
|
|
658
658
|
// commands (/design, /design-<estilo>) que leen specs/frontend/02-design.md.
|
|
659
|
+
// Adentro vive también el catálogo search-driven ui-ux-pro-max (Python
|
|
660
|
+
// stdlib, offline): no es un estilo fijo sino una base consultable que
|
|
661
|
+
// genera un design system, pero comparte familia, carpeta y comando
|
|
662
|
+
// (/design-ui-ux-pro-max). Como la biblioteca se copia entera, el catálogo
|
|
663
|
+
// viaja con su data/ y sus scripts/ — si sólo viajara su SKILL.md, cada
|
|
664
|
+
// búsqueda devolvería 0 resultados y el agente caería a defaults genéricos
|
|
665
|
+
// sin avisar.
|
|
659
666
|
kind: "library",
|
|
660
667
|
dir: "design",
|
|
661
668
|
required: false
|
|
@@ -712,13 +719,12 @@ async function planAgentBundle(repoRoot, bundle = AGENT_BUNDLE) {
|
|
|
712
719
|
}
|
|
713
720
|
for (const extra of entry.extras ?? []) {
|
|
714
721
|
const from = join4(src, extra);
|
|
715
|
-
if (await exists(from))
|
|
716
|
-
|
|
717
|
-
|
|
718
|
-
|
|
719
|
-
|
|
720
|
-
|
|
721
|
-
}
|
|
722
|
+
if (!await exists(from)) continue;
|
|
723
|
+
installs.push({
|
|
724
|
+
from,
|
|
725
|
+
to: `skills/${entry.dir}/${extra}`,
|
|
726
|
+
recursive: true
|
|
727
|
+
});
|
|
722
728
|
}
|
|
723
729
|
}
|
|
724
730
|
return { installs, skillDirs, commandDirs: ["commands"], missingRequired };
|
|
@@ -1226,7 +1232,7 @@ async function writeRootFiles(info) {
|
|
|
1226
1232
|
"",
|
|
1227
1233
|
`- \`backend/\` \u2014 ${info.backend.description}`,
|
|
1228
1234
|
`- \`frontend/\` \u2014 ${info.frontend.description}`,
|
|
1229
|
-
"- `.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/`",
|
|
1235
|
+
"- `.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 con `/design` (estilos dark-luxury, docs-starship, minimal-dashboard, minimal-light, neo-brutalist, glassmorphism) y el cat\xE1logo search-driven `/design-ui-ux-pro-max` (requiere Python 3). Mismo bundle en las 3 ubicaciones: OpenCode lee `.opencode/`; Pi y Gentle Shell leen `.pi/` (skills + prompt templates); los agentes Agent Skills leen `.agents/`",
|
|
1230
1236
|
"- `specs/` \u2014 especificaciones del proyecto",
|
|
1231
1237
|
"",
|
|
1232
1238
|
"## Backend",
|
|
@@ -1399,7 +1405,8 @@ async function runSkillsFlow(opts = {}) {
|
|
|
1399
1405
|
console.log(chalk.bold("\nSkills disponibles:\n"));
|
|
1400
1406
|
console.log(chalk.dim(" create-specs \u2014 specs para proyecto nuevo (/create-specs)"));
|
|
1401
1407
|
console.log(chalk.dim(" create-specs-from-code \u2014 specs desde c\xF3digo existente (/create-specs-from-code)"));
|
|
1402
|
-
console.log(chalk.dim("
|
|
1408
|
+
console.log(chalk.dim(" create-prompt \u2014 detalla una idea en specs/prompt.md (/create-prompt)"));
|
|
1409
|
+
console.log(chalk.dim(" design/ \u2014 dark-luxury, glassmorphism, minimal-dashboard, minimal-light, neo-brutalist, docs-starship + cat\xE1logo ui-ux-pro-max (/design-<estilo>; el cat\xE1logo requiere Python 3)\n"));
|
|
1403
1410
|
let bundle;
|
|
1404
1411
|
if (opts.only) {
|
|
1405
1412
|
const names = opts.only.split(",").map((s) => s.trim()).filter(Boolean);
|
|
@@ -1472,7 +1479,7 @@ program.command("skills").description(
|
|
|
1472
1479
|
"Destinos separados por coma: opencode, pi, gentle-shell, agents (o 'all'). Saltea la pregunta"
|
|
1473
1480
|
).option(
|
|
1474
1481
|
"-o, --only <skills>",
|
|
1475
|
-
"Solo estas skills, separadas por coma: create-specs, create-specs-from-code, design"
|
|
1482
|
+
"Solo estas skills, separadas por coma: create-specs, create-specs-from-code, create-prompt, design"
|
|
1476
1483
|
).option(
|
|
1477
1484
|
"-r, --remove",
|
|
1478
1485
|
"Eliminar en vez de instalar (combinar con --global y opcionalmente --only)"
|