specleap-framework 2.0.7 → 2.0.8
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/.claude/skills/ui-ux-pro-max/SKILL.md +377 -0
- package/.claude/skills/ui-ux-pro-max/data/charts.csv +26 -0
- package/.claude/skills/ui-ux-pro-max/data/colors.csv +97 -0
- package/.claude/skills/ui-ux-pro-max/data/icons.csv +101 -0
- package/.claude/skills/ui-ux-pro-max/data/landing.csv +31 -0
- package/.claude/skills/ui-ux-pro-max/data/products.csv +97 -0
- package/.claude/skills/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/astro.csv +54 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/.claude/skills/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/.claude/skills/ui-ux-pro-max/data/styles.csv +68 -0
- package/.claude/skills/ui-ux-pro-max/data/typography.csv +58 -0
- package/.claude/skills/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/.claude/skills/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/.claude/skills/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/.claude/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-314.pyc +0 -0
- package/.claude/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-314.pyc +0 -0
- package/.claude/skills/ui-ux-pro-max/scripts/__pycache__/search.cpython-314.pyc +0 -0
- package/.claude/skills/ui-ux-pro-max/scripts/core.py +253 -0
- package/.claude/skills/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/.claude/skills/ui-ux-pro-max/scripts/search.py +114 -0
- package/.clinerules +219 -0
- package/.coderabbit.yaml +261 -0
- package/.continue/rules/01-sdd-methodology.md +57 -0
- package/.continue/rules/02-spec-format.md +76 -0
- package/.continue/rules/03-code-standards.md +64 -0
- package/.continue/rules/04-git-workflow.md +80 -0
- package/.continue/rules/05-testing-report.md +63 -0
- package/.continuerules +40 -0
- package/.cursorrules +44 -0
- package/.github/copilot-instructions.md +54 -0
- package/.vscode/extensions.json +10 -0
- package/.vscode/markdown.css +235 -0
- package/.vscode/settings.json +33 -0
- package/package.json +9 -1
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: OpenSpec Format
|
|
3
|
+
globs: ["**/openspec/**/*.md", "**/*.spec.md"]
|
|
4
|
+
alwaysApply: false
|
|
5
|
+
description: Formato estándar para especificaciones OpenSpec
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Formato de Especificaciones
|
|
9
|
+
|
|
10
|
+
## Estructura de Archivo Spec
|
|
11
|
+
|
|
12
|
+
```markdown
|
|
13
|
+
# [SPEC-XXX] Nombre de la Especificación
|
|
14
|
+
|
|
15
|
+
| Campo | Valor |
|
|
16
|
+
|-------|-------|
|
|
17
|
+
| ID | SPEC-XXX |
|
|
18
|
+
| Versión | 1.0.0 |
|
|
19
|
+
| Estado | draft / review / approved / implemented |
|
|
20
|
+
| Prioridad | critical / high / medium / low |
|
|
21
|
+
| Proyecto | nombre-proyecto |
|
|
22
|
+
|
|
23
|
+
## Descripción
|
|
24
|
+
Qué hace este componente/feature
|
|
25
|
+
|
|
26
|
+
## Requisitos
|
|
27
|
+
|
|
28
|
+
### Requirement: Nombre del requisito
|
|
29
|
+
- The system SHALL [obligatorio].
|
|
30
|
+
- The system SHOULD [recomendado].
|
|
31
|
+
- The system MAY [opcional].
|
|
32
|
+
|
|
33
|
+
## Escenarios
|
|
34
|
+
|
|
35
|
+
### Scenario: Nombre del escenario
|
|
36
|
+
- GIVEN [precondición]
|
|
37
|
+
- WHEN [acción]
|
|
38
|
+
- THEN [resultado]
|
|
39
|
+
- AND [resultado adicional]
|
|
40
|
+
|
|
41
|
+
## Criterios de Aceptación
|
|
42
|
+
- [ ] CA-01: ...
|
|
43
|
+
- [ ] CA-02: ...
|
|
44
|
+
|
|
45
|
+
## Dependencias
|
|
46
|
+
| Tipo | Spec ID | Descripción |
|
|
47
|
+
|------|---------|-------------|
|
|
48
|
+
| Depende de | SPEC-XXX | Razón |
|
|
49
|
+
|
|
50
|
+
## Notas Técnicas
|
|
51
|
+
Decisiones de implementación, restricciones, etc.
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
## Palabras Clave RFC-2119
|
|
55
|
+
|
|
56
|
+
- `SHALL` = obligatorio (MUST)
|
|
57
|
+
- `SHOULD` = recomendado
|
|
58
|
+
- `MAY` = opcional
|
|
59
|
+
|
|
60
|
+
## Escenarios BDD
|
|
61
|
+
|
|
62
|
+
Usar formato Gherkin:
|
|
63
|
+
- `GIVEN` = precondición/contexto
|
|
64
|
+
- `WHEN` = acción del usuario/sistema
|
|
65
|
+
- `THEN` = resultado esperado
|
|
66
|
+
- `AND` = condiciones adicionales
|
|
67
|
+
|
|
68
|
+
## Estados de Spec
|
|
69
|
+
|
|
70
|
+
| Estado | Significado |
|
|
71
|
+
|--------|-------------|
|
|
72
|
+
| `draft` | En borrador, no aprobada |
|
|
73
|
+
| `review` | En revisión |
|
|
74
|
+
| `approved` | Aprobada, lista para implementar |
|
|
75
|
+
| `implemented` | Implementada y testeada |
|
|
76
|
+
| `deprecated` | Obsoleta |
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Code Standards
|
|
3
|
+
globs: ["**/*.ts", "**/*.tsx", "**/*.js", "**/*.jsx", "**/*.php", "**/*.py"]
|
|
4
|
+
alwaysApply: false
|
|
5
|
+
description: Estándares de código para desarrollo
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Estándares de Código
|
|
9
|
+
|
|
10
|
+
## Principios
|
|
11
|
+
|
|
12
|
+
1. **DRY** — No repetir lógica
|
|
13
|
+
2. **KISS** — La solución más simple que funcione
|
|
14
|
+
3. **YAGNI** — No construir lo que no se necesita aún
|
|
15
|
+
4. **Tests primero** — TDD cuando sea práctico
|
|
16
|
+
|
|
17
|
+
## Idioma
|
|
18
|
+
|
|
19
|
+
- **Código**: Variables, funciones, clases en **inglés**
|
|
20
|
+
- **Comentarios**: En **español**
|
|
21
|
+
- **Documentación**: En **español**
|
|
22
|
+
- **Commits**: En **español** (prefijos en inglés)
|
|
23
|
+
|
|
24
|
+
## TypeScript/JavaScript
|
|
25
|
+
|
|
26
|
+
- Componentes funcionales con hooks
|
|
27
|
+
- TypeScript strict mode
|
|
28
|
+
- Nombres de componentes en PascalCase
|
|
29
|
+
- Hooks personalizados con prefijo `use`
|
|
30
|
+
- Props tipadas con interfaces
|
|
31
|
+
|
|
32
|
+
```typescript
|
|
33
|
+
// ✅ Correcto
|
|
34
|
+
interface UserCardProps {
|
|
35
|
+
user: User;
|
|
36
|
+
onSelect: (id: string) => void;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
// Componente para mostrar información del usuario
|
|
40
|
+
const UserCard: React.FC<UserCardProps> = ({ user, onSelect }) => {
|
|
41
|
+
// ...
|
|
42
|
+
};
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## PHP/Laravel
|
|
46
|
+
|
|
47
|
+
- PSR-12 coding standard
|
|
48
|
+
- Eloquent para queries
|
|
49
|
+
- Form Requests para validación
|
|
50
|
+
- Resources para transformar respuestas API
|
|
51
|
+
|
|
52
|
+
## Seguridad
|
|
53
|
+
|
|
54
|
+
- ❌ Nunca hardcodear credenciales
|
|
55
|
+
- ✅ Validar TODOS los inputs
|
|
56
|
+
- ✅ Sanitizar outputs
|
|
57
|
+
- ✅ CSRF protection activa
|
|
58
|
+
- ✅ Prepared statements / ORM
|
|
59
|
+
|
|
60
|
+
## Testing
|
|
61
|
+
|
|
62
|
+
- Unit tests: lógica de negocio 80%+
|
|
63
|
+
- Integration tests: APIs y flujos
|
|
64
|
+
- Cobertura mínima documentada en spec
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Git Workflow & Commits
|
|
3
|
+
globs: ["**/.git/**", "**/CHANGELOG*", "**/COMMIT*"]
|
|
4
|
+
alwaysApply: false
|
|
5
|
+
description: Formato de commits y flujo de Git
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Git Workflow
|
|
9
|
+
|
|
10
|
+
## Formato de Commit
|
|
11
|
+
|
|
12
|
+
```
|
|
13
|
+
tipo(alcance): descripción corta en español
|
|
14
|
+
|
|
15
|
+
## Qué se hizo
|
|
16
|
+
- Descripción detallada del cambio
|
|
17
|
+
|
|
18
|
+
## Por qué
|
|
19
|
+
- Justificación del cambio
|
|
20
|
+
|
|
21
|
+
## Archivos modificados
|
|
22
|
+
- ruta/archivo.ts — qué se cambió
|
|
23
|
+
|
|
24
|
+
## Tests
|
|
25
|
+
- Tests añadidos/modificados
|
|
26
|
+
|
|
27
|
+
## Refs
|
|
28
|
+
- Jira: PROJ-XXX
|
|
29
|
+
- Spec: openspec/specs/functional/FXXX-nombre.spec.md
|
|
30
|
+
```
|
|
31
|
+
|
|
32
|
+
## Tipos de Commit
|
|
33
|
+
|
|
34
|
+
| Tipo | Uso |
|
|
35
|
+
|------|-----|
|
|
36
|
+
| `feat` | Nueva funcionalidad |
|
|
37
|
+
| `fix` | Corrección de bug |
|
|
38
|
+
| `refactor` | Reestructuración sin cambio funcional |
|
|
39
|
+
| `docs` | Documentación |
|
|
40
|
+
| `test` | Tests |
|
|
41
|
+
| `chore` | Mantenimiento, dependencias |
|
|
42
|
+
| `style` | Formato, linting |
|
|
43
|
+
| `perf` | Mejoras de rendimiento |
|
|
44
|
+
|
|
45
|
+
## Branch Naming
|
|
46
|
+
|
|
47
|
+
```
|
|
48
|
+
tipo/JIRA-XXX-descripcion-corta
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
Ejemplos:
|
|
52
|
+
- `feat/PROJ-123-user-authentication`
|
|
53
|
+
- `fix/PROJ-456-login-redirect`
|
|
54
|
+
- `refactor/PROJ-789-cleanup-utils`
|
|
55
|
+
|
|
56
|
+
## Reglas
|
|
57
|
+
|
|
58
|
+
1. **Un commit = un cambio lógico** (no mezclar features)
|
|
59
|
+
2. **Mensajes en español** (tipo en inglés)
|
|
60
|
+
3. **Nunca push directo a main** — siempre PR
|
|
61
|
+
4. **Squash merge** para historial limpio
|
|
62
|
+
5. **Code review obligatorio** antes de merge
|
|
63
|
+
|
|
64
|
+
## Testing Report en PR
|
|
65
|
+
|
|
66
|
+
Cada PR debe incluir:
|
|
67
|
+
|
|
68
|
+
```markdown
|
|
69
|
+
## Testing Report
|
|
70
|
+
|
|
71
|
+
| Suite | Tests | Passed | Failed | Coverage |
|
|
72
|
+
|-------|-------|--------|--------|----------|
|
|
73
|
+
| Unit | XX | XX | 0 | XX% |
|
|
74
|
+
| Integration | XX | XX | 0 | N/A |
|
|
75
|
+
|
|
76
|
+
### Review Status
|
|
77
|
+
- [ ] Code review aprobado
|
|
78
|
+
- [ ] Tests pasan
|
|
79
|
+
- [ ] Coverage mínimo alcanzado
|
|
80
|
+
```
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: Testing Report Format
|
|
3
|
+
globs: ["**/tasks.md", "**/*test*", "**/*spec*"]
|
|
4
|
+
alwaysApply: false
|
|
5
|
+
description: Formato obligatorio de Testing Report
|
|
6
|
+
---
|
|
7
|
+
|
|
8
|
+
# Testing Report (OBLIGATORIO)
|
|
9
|
+
|
|
10
|
+
Cada feature completada DEBE incluir un Testing Report.
|
|
11
|
+
|
|
12
|
+
## Formato Estándar
|
|
13
|
+
|
|
14
|
+
```markdown
|
|
15
|
+
## Testing Report
|
|
16
|
+
|
|
17
|
+
### Resultados
|
|
18
|
+
| Suite | Tests | Passed | Failed | Skipped | Coverage |
|
|
19
|
+
|-------|-------|--------|--------|---------|----------|
|
|
20
|
+
| Unit | X | X | 0 | 0 | XX% |
|
|
21
|
+
| Integration | X | X | 0 | 0 | N/A |
|
|
22
|
+
| E2E | X | X | 0 | 0 | N/A |
|
|
23
|
+
|
|
24
|
+
### Cobertura por Módulo
|
|
25
|
+
| Módulo | Statements | Branches | Functions | Lines |
|
|
26
|
+
|--------|------------|----------|-----------|-------|
|
|
27
|
+
| src/module | XX% | XX% | XX% | XX% |
|
|
28
|
+
|
|
29
|
+
### Comando de Ejecución
|
|
30
|
+
\`\`\`bash
|
|
31
|
+
npm test -- --coverage
|
|
32
|
+
\`\`\`
|
|
33
|
+
|
|
34
|
+
### Code Review Status
|
|
35
|
+
- [ ] Review solicitado
|
|
36
|
+
- [ ] Comentarios resueltos
|
|
37
|
+
- [ ] Review aprobado
|
|
38
|
+
|
|
39
|
+
### Notas
|
|
40
|
+
- Observaciones relevantes sobre los tests
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## Cobertura Mínima
|
|
44
|
+
|
|
45
|
+
| Tipo de Código | Cobertura Mínima |
|
|
46
|
+
|----------------|------------------|
|
|
47
|
+
| Lógica de negocio | 80% |
|
|
48
|
+
| Utilidades | 90% |
|
|
49
|
+
| Componentes UI | Tests de comportamiento |
|
|
50
|
+
|
|
51
|
+
## Convención de Nombres de Tests
|
|
52
|
+
|
|
53
|
+
```typescript
|
|
54
|
+
describe('[NombreComponente]', () => {
|
|
55
|
+
it('debería [comportamiento] cuando [condición]', () => {
|
|
56
|
+
// Arrange → Act → Assert
|
|
57
|
+
});
|
|
58
|
+
});
|
|
59
|
+
```
|
|
60
|
+
|
|
61
|
+
## Regla de Oro
|
|
62
|
+
|
|
63
|
+
> **Si no hay Testing Report, no hay merge.**
|
package/.continuerules
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Continue Rules for ArchSpec
|
|
2
|
+
|
|
3
|
+
You are a development assistant working under **Spec-Driven Development (SDD)** methodology via ArchSpec.
|
|
4
|
+
|
|
5
|
+
## Critical Rules
|
|
6
|
+
|
|
7
|
+
1. **NEVER write code without a spec first.** If no spec exists, create one with `openspec new`.
|
|
8
|
+
2. **NEVER skip the approval step.** Present spec/proposal and wait for confirmation before implementing.
|
|
9
|
+
3. **NEVER hardcode values.** Everything configurable goes in env/config files.
|
|
10
|
+
4. **ALWAYS link commits to specs and Jira tickets.**
|
|
11
|
+
|
|
12
|
+
## Workflow (mandatory)
|
|
13
|
+
|
|
14
|
+
```
|
|
15
|
+
SPEC → APPROVE → CODE → TEST → REVIEW → SHIP
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
## Available Commands
|
|
19
|
+
|
|
20
|
+
- `openspec new CHANGE-XXX "desc"` — Create change proposal
|
|
21
|
+
- `openspec apply CHANGE-XXX` — Implement approved proposal
|
|
22
|
+
- `openspec verify CHANGE-XXX` — Run tests + verify spec
|
|
23
|
+
- `openspec status` — List active proposals
|
|
24
|
+
- `openspec jira ls` — List open Jira issues
|
|
25
|
+
|
|
26
|
+
## Before writing any code:
|
|
27
|
+
|
|
28
|
+
1. Search for existing similar functionality
|
|
29
|
+
2. Check existing specs in `openspec/specs/`
|
|
30
|
+
3. Replicate existing patterns exactly — never invent new ones without approval
|
|
31
|
+
|
|
32
|
+
## Commit format:
|
|
33
|
+
|
|
34
|
+
```
|
|
35
|
+
feat(scope): short description
|
|
36
|
+
|
|
37
|
+
Refs: CHANGE-XXX, SCRUM-X
|
|
38
|
+
```
|
|
39
|
+
|
|
40
|
+
Full reference: See CLAUDE.md for complete rules.
|
package/.cursorrules
ADDED
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
# Cursor Rules — DevFlow Pro SDD
|
|
2
|
+
|
|
3
|
+
## Metodología: Spec-Driven Development
|
|
4
|
+
Primero la especificación, luego el código. Nunca al revés.
|
|
5
|
+
|
|
6
|
+
## Estructura
|
|
7
|
+
- `openspec/specs/` — Especificaciones (source of truth)
|
|
8
|
+
- `openspec/changes/` — Propuestas de cambios
|
|
9
|
+
- `openspec/templates/` — Plantillas
|
|
10
|
+
|
|
11
|
+
## Flujo de Trabajo
|
|
12
|
+
1. Crear/actualizar spec antes de codificar
|
|
13
|
+
2. Crear propuesta en `openspec/changes/CHANGE-XXXX-nombre/`
|
|
14
|
+
3. Implementar según spec
|
|
15
|
+
4. Escribir tests con Testing Report
|
|
16
|
+
5. Code review obligatorio
|
|
17
|
+
6. Merge con aprobación
|
|
18
|
+
|
|
19
|
+
## Formato de Specs
|
|
20
|
+
- Escenarios: GIVEN/WHEN/THEN
|
|
21
|
+
- Requisitos: SHALL (obligatorio), SHOULD (recomendado), MAY (opcional)
|
|
22
|
+
- Estados: draft → review → approved → implemented
|
|
23
|
+
|
|
24
|
+
## Código
|
|
25
|
+
- Idioma código: inglés
|
|
26
|
+
- Idioma comentarios: español
|
|
27
|
+
- TypeScript strict mode
|
|
28
|
+
- Cobertura mínima: 80% lógica de negocio
|
|
29
|
+
|
|
30
|
+
## Commits
|
|
31
|
+
Formato: `tipo(alcance): descripción en español`
|
|
32
|
+
Tipos: feat, fix, refactor, docs, test, chore, style, perf
|
|
33
|
+
Incluir: refs a Jira y Spec
|
|
34
|
+
|
|
35
|
+
## Testing Report (OBLIGATORIO)
|
|
36
|
+
Cada feature documenta:
|
|
37
|
+
- Resultados de tests (unit, integration, e2e)
|
|
38
|
+
- Cobertura por módulo
|
|
39
|
+
- Status de code review
|
|
40
|
+
|
|
41
|
+
## Reglas de Oro
|
|
42
|
+
1. Sin spec no hay código
|
|
43
|
+
2. Sin tests no hay merge
|
|
44
|
+
3. Sin review no hay deploy
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
# GitHub Copilot Instructions — DevFlow Pro SDD
|
|
2
|
+
|
|
3
|
+
## Metodología: Spec-Driven Development
|
|
4
|
+
|
|
5
|
+
> **Primero la especificación, luego el código. Nunca al revés.**
|
|
6
|
+
|
|
7
|
+
### Flujo de Trabajo
|
|
8
|
+
1. Crear spec antes de codificar (`openspec/specs/`)
|
|
9
|
+
2. Crear propuesta de cambio (`openspec/changes/`)
|
|
10
|
+
3. Implementar según spec
|
|
11
|
+
4. Tests obligatorios con Testing Report
|
|
12
|
+
5. Code review obligatorio
|
|
13
|
+
6. Merge solo con aprobación
|
|
14
|
+
|
|
15
|
+
### Estructura del Proyecto
|
|
16
|
+
```
|
|
17
|
+
openspec/
|
|
18
|
+
├── specs/ # Especificaciones (source of truth)
|
|
19
|
+
├── changes/ # Propuestas de cambios
|
|
20
|
+
└── templates/ # Plantillas
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
### Formato de Specs
|
|
24
|
+
- Usar GIVEN/WHEN/THEN para escenarios
|
|
25
|
+
- SHALL = obligatorio, SHOULD = recomendado, MAY = opcional
|
|
26
|
+
- Estados: draft → review → approved → implemented
|
|
27
|
+
|
|
28
|
+
### Código
|
|
29
|
+
- Variables/funciones en inglés
|
|
30
|
+
- Comentarios en español
|
|
31
|
+
- TypeScript strict mode
|
|
32
|
+
- Tests con 80%+ cobertura en lógica de negocio
|
|
33
|
+
|
|
34
|
+
### Commits
|
|
35
|
+
```
|
|
36
|
+
tipo(alcance): descripción en español
|
|
37
|
+
|
|
38
|
+
## Qué se hizo
|
|
39
|
+
## Por qué
|
|
40
|
+
## Refs: Jira/Spec
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
Tipos: feat, fix, refactor, docs, test, chore, style, perf
|
|
44
|
+
|
|
45
|
+
### Testing Report (OBLIGATORIO)
|
|
46
|
+
Cada feature debe documentar:
|
|
47
|
+
- Tests ejecutados y resultados
|
|
48
|
+
- Cobertura por módulo
|
|
49
|
+
- Status de code review
|
|
50
|
+
|
|
51
|
+
### Reglas
|
|
52
|
+
1. Sin spec no hay código
|
|
53
|
+
2. Sin tests no hay merge
|
|
54
|
+
3. Sin review no hay deploy
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
/* ArchSpec Markdown Preview Styling */
|
|
2
|
+
/* Estilo profesional tipo documentación */
|
|
3
|
+
|
|
4
|
+
body {
|
|
5
|
+
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif;
|
|
6
|
+
font-size: 16px;
|
|
7
|
+
line-height: 1.6;
|
|
8
|
+
color: #24292e;
|
|
9
|
+
background-color: #ffffff;
|
|
10
|
+
max-width: 980px;
|
|
11
|
+
margin: 0 auto;
|
|
12
|
+
padding: 2rem;
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
/* Headers con estilo de documentación */
|
|
16
|
+
h1 {
|
|
17
|
+
font-size: 2.5rem;
|
|
18
|
+
font-weight: 600;
|
|
19
|
+
border-bottom: 2px solid #eaecef;
|
|
20
|
+
padding-bottom: 0.5rem;
|
|
21
|
+
margin-top: 2rem;
|
|
22
|
+
margin-bottom: 1.5rem;
|
|
23
|
+
color: #1a1a1a;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
h2 {
|
|
27
|
+
font-size: 2rem;
|
|
28
|
+
font-weight: 600;
|
|
29
|
+
border-bottom: 1px solid #eaecef;
|
|
30
|
+
padding-bottom: 0.3rem;
|
|
31
|
+
margin-top: 1.5rem;
|
|
32
|
+
margin-bottom: 1rem;
|
|
33
|
+
color: #1a1a1a;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
h3 {
|
|
37
|
+
font-size: 1.5rem;
|
|
38
|
+
font-weight: 600;
|
|
39
|
+
margin-top: 1.2rem;
|
|
40
|
+
margin-bottom: 0.8rem;
|
|
41
|
+
color: #2c3e50;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
h4 {
|
|
45
|
+
font-size: 1.25rem;
|
|
46
|
+
font-weight: 600;
|
|
47
|
+
margin-top: 1rem;
|
|
48
|
+
margin-bottom: 0.6rem;
|
|
49
|
+
color: #34495e;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/* Tablas estilo documentación */
|
|
53
|
+
table {
|
|
54
|
+
border-collapse: collapse;
|
|
55
|
+
width: 100%;
|
|
56
|
+
margin: 1.5rem 0;
|
|
57
|
+
font-size: 0.95rem;
|
|
58
|
+
box-shadow: 0 2px 4px rgba(0,0,0,0.05);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
table thead {
|
|
62
|
+
background-color: #f6f8fa;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
table th {
|
|
66
|
+
padding: 0.75rem 1rem;
|
|
67
|
+
text-align: left;
|
|
68
|
+
font-weight: 600;
|
|
69
|
+
border: 1px solid #d0d7de;
|
|
70
|
+
color: #1a1a1a;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
table td {
|
|
74
|
+
padding: 0.75rem 1rem;
|
|
75
|
+
border: 1px solid #d0d7de;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
table tbody tr:nth-child(even) {
|
|
79
|
+
background-color: #f9fafb;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
table tbody tr:hover {
|
|
83
|
+
background-color: #f1f3f5;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/* Code blocks estilo GitHub/GitBook */
|
|
87
|
+
code {
|
|
88
|
+
background-color: #f6f8fa;
|
|
89
|
+
border-radius: 3px;
|
|
90
|
+
padding: 0.2em 0.4em;
|
|
91
|
+
font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
|
|
92
|
+
font-size: 0.9em;
|
|
93
|
+
color: #e83e8c;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
pre {
|
|
97
|
+
background-color: #f6f8fa;
|
|
98
|
+
border-radius: 6px;
|
|
99
|
+
padding: 1rem;
|
|
100
|
+
overflow-x: auto;
|
|
101
|
+
margin: 1.5rem 0;
|
|
102
|
+
border: 1px solid #e1e4e8;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
pre code {
|
|
106
|
+
background-color: transparent;
|
|
107
|
+
padding: 0;
|
|
108
|
+
color: #24292e;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/* Blockquotes estilo tip/warning */
|
|
112
|
+
blockquote {
|
|
113
|
+
border-left: 4px solid #0969da;
|
|
114
|
+
background-color: #ddf4ff;
|
|
115
|
+
padding: 0.8rem 1rem;
|
|
116
|
+
margin: 1.5rem 0;
|
|
117
|
+
border-radius: 0 6px 6px 0;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
blockquote p {
|
|
121
|
+
margin: 0;
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
/* Links con estilo profesional */
|
|
125
|
+
a {
|
|
126
|
+
color: #0969da;
|
|
127
|
+
text-decoration: none;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
a:hover {
|
|
131
|
+
text-decoration: underline;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
/* Listas con mejor espaciado */
|
|
135
|
+
ul, ol {
|
|
136
|
+
padding-left: 2rem;
|
|
137
|
+
margin: 1rem 0;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
li {
|
|
141
|
+
margin: 0.5rem 0;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/* Checkboxes para tareas */
|
|
145
|
+
input[type="checkbox"] {
|
|
146
|
+
margin-right: 0.5rem;
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/* Badges/labels estilo GitHub */
|
|
150
|
+
.badge {
|
|
151
|
+
display: inline-block;
|
|
152
|
+
padding: 0.25em 0.6em;
|
|
153
|
+
font-size: 0.75em;
|
|
154
|
+
font-weight: 600;
|
|
155
|
+
line-height: 1;
|
|
156
|
+
border-radius: 12px;
|
|
157
|
+
background-color: #0969da;
|
|
158
|
+
color: white;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/* Horizontal rule más sutil */
|
|
162
|
+
hr {
|
|
163
|
+
border: none;
|
|
164
|
+
border-top: 1px solid #d0d7de;
|
|
165
|
+
margin: 2rem 0;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
/* Status badges (para proposal.md, tasks.md) */
|
|
169
|
+
/* Simular con strong tags */
|
|
170
|
+
strong {
|
|
171
|
+
font-weight: 600;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
/* Warnings/notes con emoji */
|
|
175
|
+
p:has(> strong:first-child):has(⚠️) {
|
|
176
|
+
background-color: #fff8c5;
|
|
177
|
+
border-left: 4px solid #e5c800;
|
|
178
|
+
padding: 0.8rem 1rem;
|
|
179
|
+
border-radius: 0 6px 6px 0;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
p:has(> strong:first-child):has(✅) {
|
|
183
|
+
background-color: #dafbe1;
|
|
184
|
+
border-left: 4px solid #1a7f37;
|
|
185
|
+
padding: 0.8rem 1rem;
|
|
186
|
+
border-radius: 0 6px 6px 0;
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
p:has(> strong:first-child):has(❌) {
|
|
190
|
+
background-color: #ffebe9;
|
|
191
|
+
border-left: 4px solid #cf222e;
|
|
192
|
+
padding: 0.8rem 1rem;
|
|
193
|
+
border-radius: 0 6px 6px 0;
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/* Syntax highlighting para diagramas ASCII */
|
|
197
|
+
pre:has(code:contains("┌")) {
|
|
198
|
+
background-color: #f0f0f0;
|
|
199
|
+
border-left: 4px solid #666;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
/* Responsive para pantallas pequeñas */
|
|
203
|
+
@media (max-width: 768px) {
|
|
204
|
+
body {
|
|
205
|
+
padding: 1rem;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
table {
|
|
209
|
+
font-size: 0.85rem;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
h1 {
|
|
213
|
+
font-size: 2rem;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
h2 {
|
|
217
|
+
font-size: 1.5rem;
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
/* Print styles */
|
|
222
|
+
@media print {
|
|
223
|
+
body {
|
|
224
|
+
max-width: 100%;
|
|
225
|
+
padding: 0;
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
h1, h2, h3 {
|
|
229
|
+
page-break-after: avoid;
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
pre, blockquote {
|
|
233
|
+
page-break-inside: avoid;
|
|
234
|
+
}
|
|
235
|
+
}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
{
|
|
2
|
+
"markdown.preview.breaks": true,
|
|
3
|
+
"markdown.preview.fontFamily": "-apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, sans-serif",
|
|
4
|
+
"markdown.preview.fontSize": 14,
|
|
5
|
+
"markdown.preview.lineHeight": 1.6,
|
|
6
|
+
"markdown.styles": [
|
|
7
|
+
".vscode/markdown.css"
|
|
8
|
+
],
|
|
9
|
+
"files.associations": {
|
|
10
|
+
"*.md": "markdown"
|
|
11
|
+
},
|
|
12
|
+
"editor.wordWrap": "on",
|
|
13
|
+
"editor.quickSuggestions": {
|
|
14
|
+
"other": true,
|
|
15
|
+
"comments": false,
|
|
16
|
+
"strings": false
|
|
17
|
+
},
|
|
18
|
+
"[markdown]": {
|
|
19
|
+
"editor.defaultFormatter": "esbenp.prettier-vscode",
|
|
20
|
+
"editor.formatOnSave": true,
|
|
21
|
+
"editor.wordWrap": "on"
|
|
22
|
+
},
|
|
23
|
+
"markdown-preview-enhanced.enableTypographer": true,
|
|
24
|
+
"markdown-preview-enhanced.breakOnSingleNewLine": false,
|
|
25
|
+
"markdown-preview-enhanced.scrollSync": true,
|
|
26
|
+
"markdown-preview-enhanced.liveUpdate": true,
|
|
27
|
+
"markdown-preview-enhanced.previewTheme": "github-light.css",
|
|
28
|
+
"markdown-preview-enhanced.codeBlockTheme": "github.css",
|
|
29
|
+
"markdown.mermaid.themes": {
|
|
30
|
+
"light": "default",
|
|
31
|
+
"dark": "dark"
|
|
32
|
+
}
|
|
33
|
+
}
|