openprompt-lang 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.
- package/README.md +483 -32
- package/bin/cli.js +232 -41
- package/bin/create.js +135 -0
- package/bin/lint.js +20 -21
- package/docs/COMMANDS.md +200 -127
- package/docs/COMMITS/INDEX.md +1 -0
- package/docs/PROMPT_AI_CONTEXT.md +99 -0
- package/docs/langs/dotnet.md +36 -0
- package/docs/langs/java-spring.md +45 -0
- package/docs/langs/python-fastapi.md +35 -0
- package/docs/langs/unity.md +30 -0
- package/docs/langs/vue-nuxt.md +36 -0
- package/package.json +31 -3
- package/scaffolds/.cursorrules +6 -0
- package/scaffolds/AGENTS.md +27 -0
- package/scaffolds/Dockerfile +11 -0
- package/scaffolds/capacitor.config.ts +17 -0
- package/scaffolds/netlify.toml +8 -0
- package/scaffolds/prompt-lang.json +15 -0
- package/scaffolds/railway.json +12 -0
- package/scaffolds/tailwind.config.js +8 -0
- package/scaffolds/tauri.conf.json +26 -0
- package/schemas/language-module.json +116 -0
- package/schemas/prompt-lang.json +38 -3
- package/schemas/structures.json +145 -0
- package/src/ai/prompt-builder.js +184 -0
- package/src/ai/providers.js +247 -0
- package/src/annotations/registry.js +39 -0
- package/src/annotations/tags.json +24 -0
- package/src/commands/ai-gen.js +161 -0
- package/src/commands/component.js +242 -212
- package/src/commands/context.js +184 -109
- package/src/commands/extract.js +242 -0
- package/src/commands/figma.js +15 -15
- package/src/commands/init.js +197 -93
- package/src/commands/integrate.js +406 -0
- package/src/commands/lang.js +148 -0
- package/src/commands/qa-gen.js +139 -0
- package/src/commands/scaffold.js +127 -0
- package/src/commands/suggest.js +24 -14
- package/src/commands/teach.js +110 -0
- package/src/commands/validate.js +143 -83
- package/src/commands/wizard.js +456 -0
- package/src/generators/figma-prompt.js +20 -12
- package/src/language-service/plugin.cjs +94 -0
- package/src/language-service/plugin.d.ts +6 -0
- package/src/mcp-server.js +605 -0
- package/src/templates/langs/react/INDEX.json +262 -0
- package/src/templates/langs/react/MODULE.json +166 -0
- package/src/templates/langs/react/templates/hooks/useAuth.template.ts +134 -0
- package/src/templates/langs/react/templates/hooks/useDebounce.template.ts +45 -0
- package/src/templates/langs/react/templates/hooks/useForm.template.ts +146 -0
- package/src/templates/langs/react/templates/hooks/usePagination.template.ts +108 -0
- package/src/templates/langs/react/templates/services/apiService.template.ts +123 -0
- package/src/templates/langs/react/templates/ui/Button.template.tsx +87 -0
- package/src/templates/langs/react/templates/ui/Card.template.tsx +85 -0
- package/src/templates/langs/react/templates/ui/DataTable.template.tsx +163 -0
- package/src/templates/langs/react/templates/ui/Input.template.tsx +96 -0
- package/src/templates/langs/react/templates/ui/Modal.template.tsx +133 -0
- package/src/templates/langs/react/templates/ui/Select.template.tsx +99 -0
- package/src/templates/langs/vue/INDEX.json +246 -0
- package/src/templates/langs/vue/MODULE.json +105 -0
- package/src/templates/langs/vue/templates/composables/useAuth.template.ts +106 -0
- package/src/templates/langs/vue/templates/composables/useDebounce.template.ts +47 -0
- package/src/templates/langs/vue/templates/composables/useFetch.template.ts +54 -0
- package/src/templates/langs/vue/templates/composables/useForm.template.ts +127 -0
- package/src/templates/langs/vue/templates/composables/usePagination.template.ts +98 -0
- package/src/templates/langs/vue/templates/services/apiService.template.ts +116 -0
- package/src/templates/langs/vue/templates/ui/Button.template.vue +79 -0
- package/src/templates/langs/vue/templates/ui/Card.template.vue +73 -0
- package/src/templates/langs/vue/templates/ui/DataTable.template.vue +115 -0
- package/src/templates/langs/vue/templates/ui/Input.template.vue +70 -0
- package/src/templates/langs/vue/templates/ui/Modal.template.vue +112 -0
- package/src/templates/langs/vue/templates/ui/Select.template.vue +77 -0
- package/src/templates/scripts/log-actividad.sh +32 -0
- package/src/templates/scripts/log-commit.sh +35 -0
- package/src/templates/scripts/log-error.sh +45 -0
- package/src/templates/scripts/validate.sh +23 -0
- package/src/ts-transformer/index.cjs +86 -0
- package/src/utils/ai.js +35 -53
- package/src/utils/annotations.js +260 -214
- package/src/utils/config.js +61 -13
- package/src/utils/error-learner.js +203 -0
- package/src/utils/file-utils.js +119 -0
- package/src/utils/language-loader.js +167 -0
- package/src/utils/template-utils.js +45 -0
- package/src/vite-plugin/index.js +54 -0
- package/vscode-extension/package.json +23 -2
- package/vscode-extension/snippets/promptlang.json +1 -3
- package/vscode-extension/syntaxes/annotations-code.tmGrammar.json +15 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
# PromptLang para Vue Nuxt 3
|
|
2
|
+
|
|
3
|
+
## Tags Adaptados
|
|
4
|
+
|
|
5
|
+
| Tag PromptLang | Equivalente Vue | Descripción |
|
|
6
|
+
|---|---|---|
|
|
7
|
+
| `@kind(component)` | `defineComponent` | Componente SFC |
|
|
8
|
+
| `@kind(composable)` | `composables/` | Función composable Vue |
|
|
9
|
+
| `@kind(page)` | `pages/` | Página Nuxt |
|
|
10
|
+
| `@kind(server)` | `server/api/` | API endpoint Nuxt |
|
|
11
|
+
| `@kind(store)` | `defineStore` (Pinia) | Estado global |
|
|
12
|
+
| `@kind(middleware)` | `middleware/` | Middleware Nuxt |
|
|
13
|
+
|
|
14
|
+
## Contratos
|
|
15
|
+
|
|
16
|
+
```vue
|
|
17
|
+
<!-- @kind(composable) -->
|
|
18
|
+
<!-- @contract(in: userId: string -> out: User | null @error: string) -->
|
|
19
|
+
<!-- @limit(lines: 80) -->
|
|
20
|
+
<script setup lang="ts">
|
|
21
|
+
export function useUser(userId: MaybeRef<string>) { ... }
|
|
22
|
+
</script>
|
|
23
|
+
|
|
24
|
+
<!-- @kind(page) -->
|
|
25
|
+
<!-- @compose(UserList, UserForm) -->
|
|
26
|
+
<template>
|
|
27
|
+
<UserList />
|
|
28
|
+
<UserForm />
|
|
29
|
+
</template>
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Scaffolding Generado
|
|
33
|
+
- `composables/useUser.ts` (lógica reactiva)
|
|
34
|
+
- `pages/users/index.vue` (listado)
|
|
35
|
+
- `server/api/users.get.ts` (API endpoint)
|
|
36
|
+
- `stores/user.ts` (Pinia store)
|
package/package.json
CHANGED
|
@@ -1,27 +1,53 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "openprompt-lang",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "PromptLang CLI — Framework de anotaciones para desarrollo asistido por IA",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./bin/cli.js",
|
|
7
7
|
"bin": {
|
|
8
|
-
"openPrompt-Lang": "./bin/cli.js"
|
|
8
|
+
"openPrompt-Lang": "./bin/cli.js",
|
|
9
|
+
"openprompt-create": "./bin/create.js"
|
|
9
10
|
},
|
|
10
11
|
"files": [
|
|
11
12
|
"bin/",
|
|
12
13
|
"src/",
|
|
13
14
|
"schemas/",
|
|
14
15
|
"docs/",
|
|
16
|
+
"scaffolds/",
|
|
15
17
|
"vscode-extension/",
|
|
16
18
|
"README.md",
|
|
17
19
|
"LICENSE"
|
|
18
20
|
],
|
|
21
|
+
"exports": {
|
|
22
|
+
".": "./bin/cli.js",
|
|
23
|
+
"./ts-plugin": {
|
|
24
|
+
"types": "./src/language-service/plugin.d.ts",
|
|
25
|
+
"require": "./src/language-service/plugin.cjs"
|
|
26
|
+
},
|
|
27
|
+
"./vite-plugin": "./src/vite-plugin/index.js",
|
|
28
|
+
"./ts-transformer": {
|
|
29
|
+
"require": "./src/ts-transformer/index.cjs"
|
|
30
|
+
}
|
|
31
|
+
},
|
|
19
32
|
"scripts": {
|
|
20
33
|
"start": "node bin/cli.js",
|
|
21
34
|
"test": "vitest run",
|
|
22
35
|
"test:watch": "vitest",
|
|
36
|
+
"lint": "eslint .",
|
|
37
|
+
"lint:fix": "eslint . --fix",
|
|
38
|
+
"format": "prettier --write .",
|
|
39
|
+
"format:check": "prettier --check .",
|
|
23
40
|
"prepublishOnly": "npm test",
|
|
24
|
-
"postinstall": "node -e \"console.log('\\n📦 openPrompt-Lang instalado. Ejecuta: npx openPrompt-Lang init\\n')\""
|
|
41
|
+
"postinstall": "node -e \"console.log('\\n📦 openPrompt-Lang instalado. Ejecuta: npx openPrompt-Lang init\\n')\"",
|
|
42
|
+
"opencode:teach": "openprompt-lang teach",
|
|
43
|
+
"opencode:scaffold": "openprompt-lang scaffold folders react",
|
|
44
|
+
"opencode:validate": "openprompt-lang validate",
|
|
45
|
+
"opencode:analyze": "openprompt-lang analyze .",
|
|
46
|
+
"opencode:search": "openprompt-lang lang search",
|
|
47
|
+
"opencode:qa": "openprompt-lang qa-gen --lang react",
|
|
48
|
+
"opencode:context": "openprompt-lang context --output contexto.md",
|
|
49
|
+
"opencode:integrate": "openprompt-lang integrate --all",
|
|
50
|
+
"opencode:wizard": "openprompt-lang wizard"
|
|
25
51
|
},
|
|
26
52
|
"keywords": [
|
|
27
53
|
"prompt-lang",
|
|
@@ -43,6 +69,8 @@
|
|
|
43
69
|
"inquirer": "^9.3.0"
|
|
44
70
|
},
|
|
45
71
|
"devDependencies": {
|
|
72
|
+
"eslint": "^10.3.0",
|
|
73
|
+
"prettier": "^3.8.3",
|
|
46
74
|
"vitest": "^4.1.6"
|
|
47
75
|
},
|
|
48
76
|
"repository": {
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
# openPrompt-Lang Rules for AI Assistants
|
|
2
|
+
Always parse prompt-lang.json and use openPrompt syntax for all generated code.
|
|
3
|
+
@openprompt prefix triggers MVP wizard: ask stack/features/deploy questions before generating.
|
|
4
|
+
Priority: reuse existing templates from templates/ and errors from errors.json.
|
|
5
|
+
Use @kind, @contract, @limit, @props annotations on all generated files.
|
|
6
|
+
No any types. Strict linting. Validate before suggesting.
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# AGENTS.md — Contexto para IA
|
|
2
|
+
|
|
3
|
+
## Stack
|
|
4
|
+
- React 18 + TypeScript + Vite
|
|
5
|
+
- Tailwind CSS
|
|
6
|
+
- Zustand (estado global)
|
|
7
|
+
|
|
8
|
+
## Convenciones
|
|
9
|
+
- Un componente por archivo, máximo 120 líneas
|
|
10
|
+
- Un hook por archivo, máximo 80 líneas
|
|
11
|
+
- 100% Tailwind utility classes (sin CSS personalizado)
|
|
12
|
+
- Barrel exports en cada carpeta (index.ts)
|
|
13
|
+
- Commits: conventional commits + log en docs/COMMITS/
|
|
14
|
+
- Framework: openPrompt-Lang (anotaciones @kind, @contract, @limit, etc.)
|
|
15
|
+
|
|
16
|
+
## Perfil del desarrollador
|
|
17
|
+
senior
|
|
18
|
+
|
|
19
|
+
## Reglas críticas
|
|
20
|
+
- NO usar any
|
|
21
|
+
- NO superar límites de líneas sin refactorizar
|
|
22
|
+
- Ejecutar `npm run validate:all` antes de cada commit
|
|
23
|
+
- Las anotaciones PromptLang deben declarar @use() al inicio del archivo
|
|
24
|
+
|
|
25
|
+
## Referencias
|
|
26
|
+
- Framework: docs/FRAMEWORK.md
|
|
27
|
+
- Sintaxis PromptLang: docs/SYNTAX.md
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { CapacitorConfig } from "@capacitor/cli"
|
|
2
|
+
|
|
3
|
+
const config: CapacitorConfig = {
|
|
4
|
+
appId: "com.app.app",
|
|
5
|
+
appName: "App",
|
|
6
|
+
webDir: "dist",
|
|
7
|
+
server: {
|
|
8
|
+
androidScheme: "https",
|
|
9
|
+
},
|
|
10
|
+
plugins: {
|
|
11
|
+
SplashScreen: {
|
|
12
|
+
launchShowDuration: 2000,
|
|
13
|
+
},
|
|
14
|
+
},
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
export default config
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "mi-app",
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"lenguaje": "react",
|
|
5
|
+
"stack": {
|
|
6
|
+
"base": ["react", "typescript", "vite", "tailwind"]
|
|
7
|
+
},
|
|
8
|
+
"profile": "senior",
|
|
9
|
+
"annotations": { "enabled": true, "strict": true },
|
|
10
|
+
"docs": { "commits": true, "logs": true, "backlog": true },
|
|
11
|
+
"extractor": {
|
|
12
|
+
"ignore": [".env", "*.local", "dist", "node_modules"],
|
|
13
|
+
"output": "contexto.md"
|
|
14
|
+
}
|
|
15
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://railway.app/railway.schema.json",
|
|
3
|
+
"build": {
|
|
4
|
+
"builder": "NIXPACKS",
|
|
5
|
+
"buildCommand": "npm run build:prod"
|
|
6
|
+
},
|
|
7
|
+
"deploy": {
|
|
8
|
+
"startCommand": "npm run dev:start",
|
|
9
|
+
"healthcheckPath": "/",
|
|
10
|
+
"restartPolicyType": "ON_FAILURE"
|
|
11
|
+
}
|
|
12
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://raw.githubusercontent.com/tauri-apps/tauri/dev/crates/tauri-config-schema/schema.json",
|
|
3
|
+
"productName": "App",
|
|
4
|
+
"version": "0.1.0",
|
|
5
|
+
"identifier": "com.app.app",
|
|
6
|
+
"build": {
|
|
7
|
+
"frontendDist": "../dist",
|
|
8
|
+
"devUrl": "http://localhost:5173",
|
|
9
|
+
"beforeBuildCommand": "npm run build:prod",
|
|
10
|
+
"beforeDevCommand": "npm run dev:start"
|
|
11
|
+
},
|
|
12
|
+
"app": {
|
|
13
|
+
"windows": [
|
|
14
|
+
{
|
|
15
|
+
"title": "App",
|
|
16
|
+
"width": 1200,
|
|
17
|
+
"height": 800,
|
|
18
|
+
"resizable": true,
|
|
19
|
+
"fullscreen": false
|
|
20
|
+
}
|
|
21
|
+
],
|
|
22
|
+
"security": {
|
|
23
|
+
"csp": null
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
|
+
"title": "openPrompt-Lang Language Module",
|
|
4
|
+
"description": "Schema for pluggable language modules",
|
|
5
|
+
"type": "object",
|
|
6
|
+
"required": ["id", "name", "version", "tags", "structure"],
|
|
7
|
+
"properties": {
|
|
8
|
+
"id": {
|
|
9
|
+
"type": "string",
|
|
10
|
+
"description": "Unique language identifier (e.g. 'react', 'vue', 'java-spring')"
|
|
11
|
+
},
|
|
12
|
+
"name": {
|
|
13
|
+
"type": "string",
|
|
14
|
+
"description": "Human-readable name (e.g. 'React + TypeScript')"
|
|
15
|
+
},
|
|
16
|
+
"version": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+$",
|
|
19
|
+
"description": "Module version (semver)"
|
|
20
|
+
},
|
|
21
|
+
"tags": {
|
|
22
|
+
"type": "object",
|
|
23
|
+
"description": "PromptLang tag mappings for this language",
|
|
24
|
+
"properties": {
|
|
25
|
+
"kind": {
|
|
26
|
+
"type": "object",
|
|
27
|
+
"description": "Available @kind values",
|
|
28
|
+
"additionalProperties": {
|
|
29
|
+
"type": "object",
|
|
30
|
+
"properties": {
|
|
31
|
+
"extends": { "type": "string" },
|
|
32
|
+
"limit": { "type": "number" },
|
|
33
|
+
"requires": { "type": "array", "items": { "type": "string" } },
|
|
34
|
+
"forbids": { "type": "array", "items": { "type": "string" } },
|
|
35
|
+
"suggests": { "type": "array", "items": { "type": "string" } },
|
|
36
|
+
"description": { "type": "string" }
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
},
|
|
40
|
+
"platforms": {
|
|
41
|
+
"type": "array",
|
|
42
|
+
"items": { "type": "string" }
|
|
43
|
+
},
|
|
44
|
+
"forbidden": {
|
|
45
|
+
"type": "array",
|
|
46
|
+
"items": { "type": "string" }
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"structure": {
|
|
51
|
+
"type": "object",
|
|
52
|
+
"description": "Folder structure and scaffold config",
|
|
53
|
+
"required": ["folders"],
|
|
54
|
+
"properties": {
|
|
55
|
+
"folders": {
|
|
56
|
+
"type": "array",
|
|
57
|
+
"items": { "type": "string" }
|
|
58
|
+
},
|
|
59
|
+
"scaffolds": {
|
|
60
|
+
"type": "array",
|
|
61
|
+
"items": { "type": "string" }
|
|
62
|
+
},
|
|
63
|
+
"deps": {
|
|
64
|
+
"type": "object",
|
|
65
|
+
"description": "Dependency presets for this language",
|
|
66
|
+
"additionalProperties": {
|
|
67
|
+
"type": "object",
|
|
68
|
+
"properties": {
|
|
69
|
+
"prod": { "type": "array", "items": { "type": "string" } },
|
|
70
|
+
"dev": { "type": "array", "items": { "type": "string" } }
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
},
|
|
76
|
+
"projectTypes": {
|
|
77
|
+
"type": "object",
|
|
78
|
+
"description": "Available project types for this language",
|
|
79
|
+
"additionalProperties": {
|
|
80
|
+
"type": "object",
|
|
81
|
+
"properties": {
|
|
82
|
+
"name": { "type": "string" },
|
|
83
|
+
"ui": { "type": "boolean" },
|
|
84
|
+
"description": { "type": "string" }
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
"uiStyles": {
|
|
89
|
+
"type": "array",
|
|
90
|
+
"items": {
|
|
91
|
+
"type": "string"
|
|
92
|
+
},
|
|
93
|
+
"description": "Available UI style libraries"
|
|
94
|
+
},
|
|
95
|
+
"extensions": {
|
|
96
|
+
"type": "array",
|
|
97
|
+
"items": {
|
|
98
|
+
"type": "object",
|
|
99
|
+
"properties": {
|
|
100
|
+
"name": { "type": "string" },
|
|
101
|
+
"value": { "type": "string" },
|
|
102
|
+
"deps": {
|
|
103
|
+
"type": "array",
|
|
104
|
+
"items": { "type": "string" }
|
|
105
|
+
},
|
|
106
|
+
"description": { "type": "string" }
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
},
|
|
110
|
+
"annotationTags": {
|
|
111
|
+
"type": "array",
|
|
112
|
+
"items": { "type": "string" },
|
|
113
|
+
"description": "Custom @annotation tags specific to this language module"
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
package/schemas/prompt-lang.json
CHANGED
|
@@ -13,6 +13,12 @@
|
|
|
13
13
|
"pattern": "^\\d+\\.\\d+\\.\\d+$",
|
|
14
14
|
"description": "Versión del proyecto (semver)"
|
|
15
15
|
},
|
|
16
|
+
"lenguaje": {
|
|
17
|
+
"type": "string",
|
|
18
|
+
"enum": ["react", "vue", "angular", "node", "java", "csharp", "python", "unity", "rust"],
|
|
19
|
+
"default": "react",
|
|
20
|
+
"description": "Lenguaje/framework principal del proyecto"
|
|
21
|
+
},
|
|
16
22
|
"stack": {
|
|
17
23
|
"type": "object",
|
|
18
24
|
"properties": {
|
|
@@ -20,7 +26,20 @@
|
|
|
20
26
|
"type": "array",
|
|
21
27
|
"items": {
|
|
22
28
|
"type": "string",
|
|
23
|
-
"enum": [
|
|
29
|
+
"enum": [
|
|
30
|
+
"react",
|
|
31
|
+
"typescript",
|
|
32
|
+
"vite",
|
|
33
|
+
"tailwind",
|
|
34
|
+
"vue",
|
|
35
|
+
"angular",
|
|
36
|
+
"nuxt",
|
|
37
|
+
"next",
|
|
38
|
+
"express",
|
|
39
|
+
"spring-boot",
|
|
40
|
+
"fastapi",
|
|
41
|
+
"dotnet"
|
|
42
|
+
]
|
|
24
43
|
},
|
|
25
44
|
"description": "Stack base del proyecto"
|
|
26
45
|
},
|
|
@@ -28,7 +47,18 @@
|
|
|
28
47
|
"type": "array",
|
|
29
48
|
"items": {
|
|
30
49
|
"type": "string",
|
|
31
|
-
"enum": [
|
|
50
|
+
"enum": [
|
|
51
|
+
"supabase",
|
|
52
|
+
"ionic",
|
|
53
|
+
"capacitor",
|
|
54
|
+
"tauri",
|
|
55
|
+
"firebase",
|
|
56
|
+
"trpc",
|
|
57
|
+
"next",
|
|
58
|
+
"prisma",
|
|
59
|
+
"stripe",
|
|
60
|
+
"webpay"
|
|
61
|
+
]
|
|
32
62
|
},
|
|
33
63
|
"description": "Extensiones opcionales del stack"
|
|
34
64
|
}
|
|
@@ -67,7 +97,12 @@
|
|
|
67
97
|
"type": "object",
|
|
68
98
|
"properties": {
|
|
69
99
|
"enabled": { "type": "boolean", "default": true },
|
|
70
|
-
"strict": { "type": "boolean", "default": false }
|
|
100
|
+
"strict": { "type": "boolean", "default": false },
|
|
101
|
+
"customTags": {
|
|
102
|
+
"type": "array",
|
|
103
|
+
"items": { "type": "string" },
|
|
104
|
+
"description": "Additional @annotation tags beyond built-in ones"
|
|
105
|
+
}
|
|
71
106
|
}
|
|
72
107
|
},
|
|
73
108
|
"docs": {
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
{
|
|
2
|
+
"react-vite": {
|
|
3
|
+
"name": "React Vite TypeScript",
|
|
4
|
+
"folders": [
|
|
5
|
+
"src/components/ui",
|
|
6
|
+
"src/components/layout",
|
|
7
|
+
"src/components/shared",
|
|
8
|
+
"src/features",
|
|
9
|
+
"src/hooks",
|
|
10
|
+
"src/services",
|
|
11
|
+
"src/store",
|
|
12
|
+
"src/types",
|
|
13
|
+
"src/utils",
|
|
14
|
+
"docs/COMMITS",
|
|
15
|
+
"docs/LOGS/ERRORES",
|
|
16
|
+
"docs/LOGS/ACTIVIDAD",
|
|
17
|
+
"docs/BACKLOG",
|
|
18
|
+
"docs/PROMPTS/PLANTILLAS",
|
|
19
|
+
"docs/PROMPTS/STACK",
|
|
20
|
+
"scripts"
|
|
21
|
+
],
|
|
22
|
+
"scaffolds": ["prompt-lang.json", "AGENTS.md", ".gitignore", "tailwind.config.js"],
|
|
23
|
+
"deps": {
|
|
24
|
+
"base": {
|
|
25
|
+
"dev": ["typescript", "vite", "@vitejs/plugin-react", "tailwindcss", "@tailwindcss/vite"]
|
|
26
|
+
},
|
|
27
|
+
"supabase": { "prod": ["@supabase/supabase-js", "@supabase/ssr"] },
|
|
28
|
+
"stripe": { "prod": ["@stripe/react-stripe-js", "@stripe/stripe-js"] },
|
|
29
|
+
"ionic": {
|
|
30
|
+
"prod": ["@ionic/react", "@ionic/react-router", "@capacitor/core"],
|
|
31
|
+
"dev": ["@capacitor/cli"]
|
|
32
|
+
},
|
|
33
|
+
"tauri": { "dev": ["@tauri-apps/cli"] }
|
|
34
|
+
},
|
|
35
|
+
"default_scripts": {
|
|
36
|
+
"dev:start": "vite",
|
|
37
|
+
"dev:preview": "vite preview",
|
|
38
|
+
"build:prod": "vite build",
|
|
39
|
+
"build:analyze": "vite build --analyze",
|
|
40
|
+
"lint:check": "eslint src --ext .ts,.tsx",
|
|
41
|
+
"lint:fix": "eslint src --ext .ts,.tsx --fix",
|
|
42
|
+
"type:check": "tsc --noEmit",
|
|
43
|
+
"quality:doctor": "npx react-doctor check ./src",
|
|
44
|
+
"test:unit": "vitest run",
|
|
45
|
+
"test:watch": "vitest",
|
|
46
|
+
"test:coverage": "vitest run --coverage",
|
|
47
|
+
"validate:all": "npm run lint:check && npm run type:check && npm run quality:doctor && npm run test:unit"
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"vue-nuxt": {
|
|
51
|
+
"name": "Vue Nuxt 3",
|
|
52
|
+
"folders": [
|
|
53
|
+
"composables",
|
|
54
|
+
"components/ui",
|
|
55
|
+
"components/layout",
|
|
56
|
+
"pages",
|
|
57
|
+
"server/api",
|
|
58
|
+
"server/utils",
|
|
59
|
+
"stores",
|
|
60
|
+
"types",
|
|
61
|
+
"docs/COMMITS",
|
|
62
|
+
"docs/LOGS/ERRORES",
|
|
63
|
+
"docs/BACKLOG"
|
|
64
|
+
],
|
|
65
|
+
"scaffolds": ["prompt-lang.json", "AGENTS.md", ".gitignore"]
|
|
66
|
+
},
|
|
67
|
+
"angular": {
|
|
68
|
+
"name": "Angular Standalone",
|
|
69
|
+
"folders": [
|
|
70
|
+
"src/app/services",
|
|
71
|
+
"src/app/components/shared",
|
|
72
|
+
"src/app/pages",
|
|
73
|
+
"src/app/interfaces",
|
|
74
|
+
"src/app/guards",
|
|
75
|
+
"src/app/interceptors",
|
|
76
|
+
"projects",
|
|
77
|
+
"docs/COMMITS",
|
|
78
|
+
"docs/BACKLOG"
|
|
79
|
+
],
|
|
80
|
+
"scaffolds": ["prompt-lang.json", "AGENTS.md", ".gitignore"]
|
|
81
|
+
},
|
|
82
|
+
"ionic": {
|
|
83
|
+
"name": "Ionic Capacitor",
|
|
84
|
+
"folders": [
|
|
85
|
+
"src/pages",
|
|
86
|
+
"src/components/ui",
|
|
87
|
+
"src/services",
|
|
88
|
+
"src/hooks",
|
|
89
|
+
"src/store",
|
|
90
|
+
"src/theme",
|
|
91
|
+
"android",
|
|
92
|
+
"ios",
|
|
93
|
+
"docs/COMMITS",
|
|
94
|
+
"docs/BACKLOG"
|
|
95
|
+
],
|
|
96
|
+
"scaffolds": ["capacitor.config.ts", "prompt-lang.json", "AGENTS.md", ".gitignore"]
|
|
97
|
+
},
|
|
98
|
+
"node-express": {
|
|
99
|
+
"name": "Node Express API",
|
|
100
|
+
"folders": [
|
|
101
|
+
"src/routes",
|
|
102
|
+
"src/controllers",
|
|
103
|
+
"src/services",
|
|
104
|
+
"src/models",
|
|
105
|
+
"src/middleware",
|
|
106
|
+
"src/utils",
|
|
107
|
+
"src/validators",
|
|
108
|
+
"docs/COMMITS",
|
|
109
|
+
"docs/BACKLOG",
|
|
110
|
+
"scripts"
|
|
111
|
+
],
|
|
112
|
+
"scaffolds": ["prompt-lang.json", "AGENTS.md", ".gitignore", "Dockerfile"]
|
|
113
|
+
},
|
|
114
|
+
"spring-boot": {
|
|
115
|
+
"name": "Spring Boot Microservice",
|
|
116
|
+
"folders": [
|
|
117
|
+
"src/main/java/com/app/controller",
|
|
118
|
+
"src/main/java/com/app/service",
|
|
119
|
+
"src/main/java/com/app/repository",
|
|
120
|
+
"src/main/java/com/app/model/entity",
|
|
121
|
+
"src/main/java/com/app/model/dto",
|
|
122
|
+
"src/main/java/com/app/config",
|
|
123
|
+
"src/main/java/com/app/exception",
|
|
124
|
+
"src/main/resources",
|
|
125
|
+
"src/test/java/com/app",
|
|
126
|
+
"docs/COMMITS",
|
|
127
|
+
"docs/BACKLOG"
|
|
128
|
+
],
|
|
129
|
+
"scaffolds": ["prompt-lang.json", "AGENTS.md", ".gitignore", "Dockerfile"]
|
|
130
|
+
},
|
|
131
|
+
"python-fastapi": {
|
|
132
|
+
"name": "Python FastAPI",
|
|
133
|
+
"folders": [
|
|
134
|
+
"app/routes",
|
|
135
|
+
"app/services",
|
|
136
|
+
"app/models",
|
|
137
|
+
"app/schemas",
|
|
138
|
+
"app/core",
|
|
139
|
+
"tests",
|
|
140
|
+
"docs/COMMITS",
|
|
141
|
+
"docs/BACKLOG"
|
|
142
|
+
],
|
|
143
|
+
"scaffolds": ["prompt-lang.json", "AGENTS.md", ".gitignore", "Dockerfile"]
|
|
144
|
+
}
|
|
145
|
+
}
|