Skip to content

Commit 8d036e3

Browse files
committed
🔧 feat(portfolio): complete portfolio redesign spec
📝 Descripción / Description: - EN: Implement full portfolio redesign with shared design system, semantic HTML5, accessibility, SEO, and comprehensive test suite - ES: Implementar rediseño completo del portafolio con sistema de diseño compartido, HTML5 semántico, accesibilidad, SEO y suite de pruebas completa 📁 Files changed: - styles.css (shared design system with light/dark themes, components, responsive breakpoints) - main.js (ThemeEngine, LocaleEngine, Navigation, AnimationController, AccessRequestForm modules) - index.html (restructured with semantic HTML5, shared assets, SEO metadata) - learning-resources.html (restructured with shared assets, navbar, SEO) - access-request.html (restructured with shared assets, form accessibility) - 404.html (new error page with theme/locale support) - sitemap.xml (new SEO sitemap listing all pages) - robots.txt (new crawler directives) - tests/ (13 test files: 5 unit test suites, 6 property-based test suites, HTML structure tests, SEO tests) - package.json (test infrastructure with fast-check, jsdom) - .kiro/specs/portfolio-redesign/ (requirements, design, tasks) - .gitignore (updated for node_modules) 🏷️ Type: feat
1 parent 28d1bf5 commit 8d036e3

36 files changed

Lines changed: 7553 additions & 3523 deletions

.gitignore

Lines changed: 45 additions & 56 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,20 @@
1-
# General
1+
# macOS
22
.DS_Store
33
.AppleDouble
44
.LSOverride
5+
._*
6+
7+
# Windows
58
Thumbs.db
69
ehthumbs.db
710
Desktop.ini
11+
$RECYCLE.BIN/
12+
13+
# Kiro AI
14+
.kiro/cache/
15+
.kiro/logs/
16+
.kiro/temp/
17+
.kiro/.session
818

919
# IDE - VSCode
1020
.vscode/*
@@ -19,87 +29,66 @@ Desktop.ini
1929
*.iml
2030
*.iws
2131
*.ipr
22-
.idea_modules/
32+
33+
# Node
34+
node_modules/
35+
npm-debug.log*
36+
yarn-debug.log*
37+
yarn-error.log*
38+
package-lock.json
39+
yarn.lock
40+
.pnpm-debug.log*
41+
42+
# Environment variables
43+
.env
44+
.env.*
45+
!.env.example
46+
47+
# Build outputs
48+
dist/
49+
build/
50+
out/
51+
.cache/
52+
.parcel-cache/
53+
.next/
54+
.nuxt/
55+
.output/
56+
57+
# Static site generators
58+
.jekyll-cache/
59+
.jekyll-metadata
60+
.sass-cache/
61+
_site/
2362

2463
# Python
2564
__pycache__/
2665
*.py[cod]
2766
*$py.class
2867
*.so
29-
.Python
30-
env/
31-
build/
32-
develop-eggs/
33-
dist/
34-
downloads/
35-
eggs/
36-
.eggs/
37-
lib/
38-
lib64/
39-
parts/
40-
sdist/
41-
var/
42-
*.egg-info/
43-
.installed.cfg
44-
*.egg
4568
venv/
69+
env/
4670
ENV/
47-
48-
# Node
49-
node_modules/
50-
npm-debug.log
51-
yarn-debug.log
52-
yarn-error.log
53-
.env
54-
.env.test
55-
.env.local
56-
.env.development.local
57-
.env.test.local
58-
.env.production.local
71+
*.egg-info/
5972

6073
# AWS
6174
.aws-sam/
6275
samconfig.toml
63-
.chalice/deployments/
64-
.chalice/venv/
6576
cdk.out/
66-
.cdk.staging/
6777
.terraform/
6878
*.tfstate
6979
*.tfstate.*
7080
.terraform.lock.hcl
71-
terraform.tfvars
72-
*.tfvars.json
73-
crash.log
74-
75-
# Docker
76-
.docker/
77-
78-
# Kubernetes
79-
kubeconfig
80-
*.kubeconfig
8181

8282
# Logs
83-
logs
83+
logs/
8484
*.log
85-
npm-debug.log*
86-
yarn-debug.log*
87-
yarn-error.log*
8885

8986
# Sensitive data
9087
*.pem
9188
*.key
9289
*.p12
9390
*.pfx
94-
*.cer
95-
*.crt
96-
*.env
97-
*.env.*
9891
credentials
9992
credentials.json
100-
.secrets
93+
.secrets/
10194
.secret
102-
.password
103-
.passwords
104-
.token
105-
.tokens
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
{
2+
"enabled": true,
3+
"name": "Code Quality Review",
4+
"description": "Analyzes modified source code files for potential improvements including code smells, design patterns, and best practices. Generates suggestions for improving readability, maintainability, and performance while preserving existing functionality.",
5+
"version": "1",
6+
"when": {
7+
"type": "fileEdited",
8+
"patterns": [
9+
"*.html",
10+
"*.css",
11+
"*.js",
12+
"*.py",
13+
"*.yml",
14+
"*.yaml"
15+
]
16+
},
17+
"then": {
18+
"type": "askAgent",
19+
"prompt": "Review the edited file for potential code quality improvements. Analyze for:\n\n1. Code smells (duplicated logic, overly complex functions, magic numbers, dead code)\n2. Design pattern opportunities (better organization, separation of concerns)\n3. Best practices (semantic HTML, accessible markup, modern CSS/JS patterns)\n4. Readability (naming, comments, structure)\n5. Maintainability (DRY violations, tight coupling)\n6. Performance (unnecessary DOM queries, inefficient selectors, render-blocking patterns)\n\nProvide concise, actionable suggestions. Do not rewrite the entire file — just highlight specific areas and recommend targeted improvements. Preserve existing functionality."
20+
}
21+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"enabled": true,
3+
"name": "Auto Git Commit & Push",
4+
"description": "When the agent finishes a task, automatically runs git status, stages changes, creates a structured bilingual commit message (English/Spanish), and pushes to main.",
5+
"version": "1",
6+
"when": {
7+
"type": "agentStop"
8+
},
9+
"then": {
10+
"type": "askAgent",
11+
"prompt": "Run the following git workflow in order. Do NOT skip any step:\n\n1. Run `git status` to see what changed.\n2. Run `git diff --stat` to get a summary of modifications.\n3. Run `git add -A` to stage all changes.\n4. Create a commit with a structured message following this EXACT template every time:\n\n```\n🔧 <type>(<scope>): <short summary in English>\n\n📝 Descripción / Description:\n- EN: <bullet points describing what changed in English>\n- ES: <bullet points describing what changed in Spanish>\n\n📁 Files changed:\n- <list each file changed>\n\n🏷️ Type: <feat|fix|refactor|style|docs|chore|test>\n```\n\nWhere:\n- `type` is one of: feat, fix, refactor, style, docs, chore, test\n- `scope` is the area affected (e.g., index, access-request, styles, docs, config)\n- The short summary is max 50 chars, imperative mood\n- Description bullets should be concise and match between EN and ES\n\n5. Run `git push origin main` to push the commit.\n\nAlways follow this exact structure. Never deviate from the template."
12+
}
13+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"enabled": true,
3+
"name": "Sync Translations",
4+
"description": "Monitors HTML files containing inline translation objects (index.html, access-request.html, learning-resources.html) for changes to user-facing text. When changes are detected, identifies new or modified English (en) translation keys and generates corresponding Spanish (es) and Portuguese (pt) translations, maintaining proper context, meaning, and locale-specific conventions.",
5+
"version": "1",
6+
"when": {
7+
"type": "fileEdited",
8+
"patterns": [
9+
"*.html"
10+
]
11+
},
12+
"then": {
13+
"type": "askAgent",
14+
"prompt": "A user-facing HTML file was just edited. This project uses inline JavaScript translation objects (`const translations = { en: {...}, es: {...}, pt: {...} }`) inside each HTML file for i18n support across English, Spanish, and Portuguese.\n\nPlease do the following:\n1. Locate the `translations` object in the edited file.\n2. Compare the `en` (English) keys and values against the `es` (Spanish) and `pt` (Portuguese) sections.\n3. If any keys exist in `en` but are missing from `es` or `pt`, or if an English value has been modified (suggesting the translation is now stale), generate accurate translations for the missing or outdated entries.\n4. Ensure translations:\n - Maintain the original meaning and context\n - Follow locale-specific conventions (e.g., formal/informal tone consistency, date formats, punctuation)\n - Match the existing translation style and tone already used in that file\n5. Insert the new or updated translations into the `es` and `pt` sections of the same file.\n6. If all translations are already in sync, do nothing and confirm they are up to date."
15+
}
16+
}
Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
{
2+
"enabled": true,
3+
"name": "Update Docs on Source Change",
4+
"description": "When source files (HTML, CSS, YAML workflows, or issue templates) are edited, automatically update the relevant documentation in docs/ and README.md to reflect the changes.",
5+
"version": "1",
6+
"when": {
7+
"type": "fileEdited",
8+
"patterns": [
9+
"*.html",
10+
"*.css",
11+
".github/workflows/*.yml",
12+
".github/ISSUE_TEMPLATE/*.yml"
13+
]
14+
},
15+
"then": {
16+
"type": "askAgent",
17+
"prompt": "A source file was just edited. Review the change and determine if the documentation in docs/ (especially docs/README.md and docs/website-architecture.md) or the root README.md needs to be updated to stay in sync. If so, make the minimal necessary documentation updates. Focus on accuracy — only update docs that are actually affected by the change."
18+
}
19+
}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"generationMode": "requirements-first"}

0 commit comments

Comments
 (0)