Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
8f74bcf
feat(01-02): add root language detection redirect
mudouasenha Mar 29, 2026
c483df9
fix(01-02): align i18n bootstrap with route contract
mudouasenha Mar 29, 2026
301ac73
feat(01-02): persist selected language preference
mudouasenha Mar 29, 2026
14a38fc
chore(01-01): regenerate baseline lockfile
mudouasenha Mar 29, 2026
d5e8f74
chore(01-01): document baseline recovery flow
mudouasenha Mar 29, 2026
e424262
docs(01-02): complete routing-language-contract plan
mudouasenha Mar 29, 2026
d7b2f88
docs(01-01): complete baseline recovery plan
mudouasenha Mar 29, 2026
ac7d8f4
refactor(01-03): extract legacy constants and trim runtime module
mudouasenha Mar 29, 2026
04a27ee
fix(01-03): remove render-path debug logs from projects
mudouasenha Mar 29, 2026
8172f8d
refactor(01-03): standardize motion imports to approved package
mudouasenha Mar 29, 2026
e123efb
docs(01-03): complete remove debug and dead-code blockers plan
mudouasenha Mar 29, 2026
2f71295
docs(phase-01): complete phase execution
mudouasenha Mar 29, 2026
4097195
docs(phase-01): evolve PROJECT.md after phase completion
mudouasenha Mar 29, 2026
53814fd
docs(phase-01): reconcile roadmap completion state
mudouasenha Mar 29, 2026
efce01c
docs(02): research phase domain
mudouasenha Mar 30, 2026
5b7e0d4
docs(02): add context, validation, and phase plans
mudouasenha Mar 30, 2026
01fd192
feat: initial commit
mudouasenha Mar 30, 2026
628e538
fix(02-01): stabilize shadcn foundation build
mudouasenha Mar 30, 2026
894fbc4
feat(02-01): add shared sheet and navigation-menu primitives
mudouasenha Mar 30, 2026
9c6e285
docs(02-01): complete shadcn foundation plan
mudouasenha Mar 30, 2026
687eea9
chore(02-02): execute single b1Z5ezr60 preset attempt
mudouasenha Mar 30, 2026
b9e36c5
feat(02-02): lock Vega fallback and apply stronger token profile
mudouasenha Mar 30, 2026
c096542
docs(02-02): complete preset decision plan
mudouasenha Mar 30, 2026
b19761d
feat(02-03): rebuild sticky mixed navigation with mobile sheet
mudouasenha Mar 30, 2026
6e6175b
feat(02-03): migrate shell and hero to tokenized shadcn layout
mudouasenha Mar 30, 2026
a4eef95
chore(02-03): validate token-only styling contract
mudouasenha Mar 30, 2026
91b7563
docs(02-03): complete core shell migration plan
mudouasenha Mar 30, 2026
0f5d8cc
feat(02-04): normalize motion semantics across shell surfaces
mudouasenha Mar 30, 2026
ae1e55b
fix(02-04): gate sticky scroll transitions for reduced-motion users
mudouasenha Mar 30, 2026
f1f3cfd
chore(02-04): complete human motion verification checkpoint
mudouasenha Mar 30, 2026
a01d605
docs(02-04): complete motion and accessibility plan
mudouasenha Mar 30, 2026
ea4d9d9
docs(phase-02): complete phase execution
mudouasenha Mar 30, 2026
9a4f629
docs(phase-02): evolve PROJECT.md after phase completion
mudouasenha Mar 30, 2026
717bf5b
docs(phase-02): finalize completion tracking sync
mudouasenha Mar 30, 2026
a8daffd
docs(03): research phase domain
mudouasenha Mar 31, 2026
d6c472b
docs(03): add validation strategy
mudouasenha Mar 31, 2026
b26158f
docs(03): create phase plan
mudouasenha Mar 31, 2026
f1c9888
fix(03-section-completion-and-quality-hardening): revise plans based …
mudouasenha Mar 31, 2026
6906ed1
docs(phase-03): trim 03-01 files_modified scope
mudouasenha Mar 31, 2026
f7ee944
feat(03-01): add reusable section primitives
mudouasenha Mar 31, 2026
8769a1e
feat(03-01): migrate remaining sections to shared primitives
mudouasenha Mar 31, 2026
0ec86e5
feat(03-01): enforce explicit outbound CTA visibility
mudouasenha Mar 31, 2026
11f7404
docs(03-01): complete section migration and CTA visibility plan
mudouasenha Mar 31, 2026
024352e
feat(03-02): add schema-validated i18n content adapters
mudouasenha Mar 31, 2026
96408a6
feat(03-02): add locale parity checks for structured i18n payloads
mudouasenha Mar 31, 2026
0d3dbb7
docs(03-02): complete translation schema and parity foundation plan
mudouasenha Mar 31, 2026
3f35f77
feat(03-05): wire section components to i18n content adapters
mudouasenha Mar 31, 2026
4b68784
feat(03-05): add localized validation fallbacks and parity warning bo…
mudouasenha Mar 31, 2026
a32ef46
chore(03-03): set up integration test runtime and harness
mudouasenha Mar 31, 2026
32884fa
docs(03-05): complete adapter-backed section rendering plan
mudouasenha Mar 31, 2026
bddc512
test(03-03): add i18n routing continuity integration tests
mudouasenha Mar 31, 2026
e47ba2d
test(03-03): add locale parity and content adapter integration tests
mudouasenha Mar 31, 2026
fd86d20
docs(03-03): complete integration-test-infrastructure-and-route-local…
mudouasenha Mar 31, 2026
7b2264c
feat(03-04): add a11y test infrastructure and phase gate
mudouasenha Mar 31, 2026
3b4a58f
test(03-04): add homepage and mobile-nav axe coverage
mudouasenha Mar 31, 2026
279d519
fix(03-04): harden accessibility semantics and playwright runtime
mudouasenha Mar 31, 2026
d917e29
docs(03-04): complete accessibility-quality-gate plan
mudouasenha Mar 31, 2026
41c6056
docs(03): add phase gap-closure plan
mudouasenha Mar 31, 2026
f4016d9
chore(03-06): add deterministic a11y dependency bootstrap and runbook
mudouasenha Mar 31, 2026
ca12878
docs(04): research phase domain
mudouasenha Apr 1, 2026
62ece7c
docs(phase-4): add validation strategy
mudouasenha Apr 1, 2026
5226593
docs(04-final-polish-and-release-readiness): create phase plan
mudouasenha Apr 1, 2026
2a0f65d
fix(phase-04): switch routine validation to smoke cadence
mudouasenha Apr 1, 2026
f26b42d
test(04-01): add failing test for about-tag token migration
mudouasenha Apr 1, 2026
c43feb0
feat(04-01): token-migrate about and tag polish surfaces
mudouasenha Apr 1, 2026
492f31d
test(04-01): add failing test for shared motion tokens
mudouasenha Apr 1, 2026
b390a23
feat(04-01): unify motion tokens and strict reduced-motion branches
mudouasenha Apr 1, 2026
2bc75e6
feat(04-01): polish mobile readability and drawer CTA prominence
mudouasenha Apr 1, 2026
4ce50fe
docs(04-01): complete final responsive token motion polish plan
mudouasenha Apr 1, 2026
1f0eba0
chore(04-02): create release checklist artifact and close wave-0 flags
mudouasenha Apr 1, 2026
652b9a7
chore(04-02): refresh release-facing docs for shipped testing and polish
mudouasenha Apr 1, 2026
32fb67d
docs(04-02): complete release-readiness documentation refresh and evi…
mudouasenha Apr 1, 2026
e81e31c
chore(04-03): define phase 4 SC requirement traceability
mudouasenha Apr 1, 2026
b474503
docs(04-04): converge release checklist evidence paths and SC-2 slot
mudouasenha Apr 1, 2026
a37feb4
fix(04-03): align architecture logging concern with projects source
mudouasenha Apr 1, 2026
44a581a
docs(04-03): complete 04-03 plan
mudouasenha Apr 1, 2026
ccba8cc
docs(04-04): capture gate logs and SC-2 threshold verdict
mudouasenha Apr 1, 2026
e13c76a
docs(04-04): complete evidence and threshold convergence plan
mudouasenha Apr 1, 2026
4694985
docs(04-05): capture manual evidence artifacts
mudouasenha Apr 1, 2026
b8fb201
docs(04-05): finalize checklist sign-off with passing gate evidence
mudouasenha Apr 1, 2026
acc1a44
docs(04-05): complete plan summary and state tracking
mudouasenha Apr 1, 2026
4dc56fd
docs(phase-04): complete phase execution
mudouasenha Apr 1, 2026
88bc18e
chore: complete v1.0 milestone
mudouasenha Apr 2, 2026
48afea2
feat(wip): rebranding brainstorming and some changes
mudouasenha Apr 11, 2026
49b6c71
feat(wip): rebranding iteration 1
mudouasenha Apr 11, 2026
00bf3ad
Refine portfolio editorial branding and responsive header
mudouasenha Apr 11, 2026
13b7406
feat: storybook + playwright config
mudouasenha Apr 19, 2026
f9ff7ff
chore: design refac.
mudouasenha Apr 19, 2026
a6d52bb
docs: add design system documentation
mudouasenha Apr 27, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
51 changes: 27 additions & 24 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,24 +1,27 @@
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
*.local

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

node_modules
dist
dist-ssr
storybook-static
*.local
playwright-report/
test-results/

# Editor directories and files
.vscode/*
!.vscode/extensions.json
.idea
.DS_Store
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
22 changes: 22 additions & 0 deletions .planning/MILESTONES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
# Milestones

## v1.0 milestone (Shipped: 2026-04-02)

**Scope:** 4 phases, 18 plans, 42 tasks
**Timeline:** 2026-03-29 to 2026-04-01
**Git range:** `6312bb9` -> `4dc56fd`
**Change volume:** 122 files changed, 22074 insertions(+), 7570 deletions(-)

**Key accomplishments:**

1. Deterministic baseline recovery with locked dependencies, route-language continuity, and dead-code/debug-path cleanup.
2. Shared shadcn/token foundation established with Vega fallback contract and migrated shell/navigation/hero primitives.
3. Section rendering hardened through schema-backed i18n adapters, locale parity checks, integration coverage, and accessibility gates.
4. Final polish and release readiness closed with traceable requirement IDs, complete evidence logs, screenshot bundle, and sign-off checklist.

### Known Gaps Accepted At Archive Time

- Milestone audit file was not present (`.planning/v1.0-MILESTONE-AUDIT.md`), so completion proceeded without the standalone audit report.
- `03-06-PLAN.md` has no matching `03-06-SUMMARY.md` artifact even though Phase 3 is marked complete in ROADMAP/STATE history.

---
50 changes: 19 additions & 31 deletions .planning/PROJECT.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,53 +2,41 @@

## What This Is

This project modernizes the existing React and TypeScript portfolio website into a cleaner, more maintainable, and more distinctive frontend system. The target outcome is a production-grade portfolio experience with stronger UI consistency, better accessibility, and improved code quality while preserving bilingual support (`en` and `pt`).
A modernized React and TypeScript portfolio frontend with a stable design system foundation, bilingual route continuity (`en`/`pt`), hardened section rendering, and release-grade quality gates.

## Core Value

A fast, polished, and trustworthy portfolio experience that clearly communicates professional credibility across desktop and mobile.

## Requirements
## Current State

### Validated
Milestone `v1.0` is shipped and archived.

- [x] Language-prefixed routing works for `en` and `pt` - existing
- [x] Portfolio sections (hero, about, skills, experience, projects, certifications, contact) render in a single-page flow - existing
- [x] Tailwind-based responsive SPA foundation is in place with Vite and TypeScript - existing
Delivered scope highlights:
- Baseline stabilization and deterministic migration guardrails.
- shadcn + semantic token system integrated across migrated surfaces.
- i18n schema adapters and route/language continuity hardening.
- Final polish with release checklist evidence and sign-off closure.

### Active
## Next Milestone Goals

- [ ] Migrate UI foundation to shadcn and modern Tailwind token architecture.
- [ ] Refactor frontend implementation for maintainability, consistency, and testability.
- [ ] Redesign UI and UX with modern patterns while preserving content clarity and i18n behavior.
- [ ] Enforce design contract: use shadcn preset `b1Z5ezr60`; fallback to Vega style if preset cannot be resolved.

### Out of Scope

- Backend or API feature development - this repository is frontend-only.
- Cross-repo or monorepo-wide refactors - scope is restricted to `portfolio/`.
- CMS migration or content pipeline replacement - keep current translation-file content model for this milestone.

## Context

The current portfolio already works functionally but has fragmented styling conventions, inconsistent motion usage, weak component-system boundaries, and no automated test suite. The objective is not only visual refresh but structural quality improvement: stronger design tokens, reusable primitives, predictable section composition, and better QA confidence. The implementation should align with current frontend standards (React 19 migration path, modern Vite/Tailwind/shadcn practices) and preserve multilingual routing behavior.
- Define fresh requirements for `v1.1` using current production learnings.
- Prioritize follow-up enhancements with explicit requirement IDs and traceability.
- Keep verification evidence standardized from plan execution through milestone closure.

## Constraints

- **Repository Scope**: Only modify code in `portfolio/` - user constraint.
- **Design Contract**: Prefer shadcn preset `b1Z5ezr60`; if unavailable, use Vega style and proceed with custom styling decisions.
- **Localization**: Keep `en` and `pt` translations and URL language routing continuity.
- **Quality Bar**: Include code-quality and UX improvements together, not visual-only changes.
- **Compatibility**: Keep deployment compatibility with current Vercel and Vite build workflow.
- **Repository Scope**: Only modify code in `portfolio/`.
- **Localization**: Preserve `en` and `pt` route and content continuity.
- **Quality Bar**: UX improvements must ship with verification and evidence.

## Key Decisions

| Decision | Rationale | Outcome |
|----------|-----------|---------|
| Treat this as a brownfield modernization, not a rewrite | Existing portfolio already delivers value; preserve validated behavior | Good |
| Use GSD defaults (`mode: yolo`, `granularity: standard`, `parallelization: true`) | Fast iteration with consistent planning workflow | Pending |
| Research-first planning enabled | Ecosystem changes affect stack choices and migration order | Good |
| Design preset fallback defined up front (`b1Z5ezr60` -> Vega) | Prevents project blocking on preset resolution ambiguity | Good |
| Brownfield modernization over rewrite | Preserve existing value and reduce delivery risk | Good |
| Preset fallback contract (`b1Z5ezr60` -> Vega) | Avoid design-system bootstrap blocking | Good |
| Keep strict verification gates tied to release artifacts | Improve release confidence and auditability | Good |

---
*Last updated: 2026-03-28 after initialization*
*Last updated: 2026-04-02 after v1.0 milestone completion*
89 changes: 0 additions & 89 deletions .planning/REQUIREMENTS.md

This file was deleted.

94 changes: 8 additions & 86 deletions .planning/ROADMAP.md
Original file line number Diff line number Diff line change
@@ -1,93 +1,15 @@
# Roadmap: Portfolio Frontend Modernization

## Overview
## Milestones

This roadmap modernizes the existing portfolio through a controlled brownfield path: stabilize environment and behavior first, establish a shadcn and tokenized design system foundation, complete UX migration with section parity and quality hardening, then finish with final polish.
- ✅ **v1.0 milestone** — Shipped 2026-04-02 (4 phases, 18 plans, 42 tasks). Archive: [v1.0-ROADMAP.md](./milestones/v1.0-ROADMAP.md)
- 📋 **v1.1 (planned)** — Not started. Define scope with `$gsd-new-milestone`.

## Phases
## Current Focus

**Phase Numbering:**
- Integer phases (1, 2, 3): Planned milestone work
- Decimal phases (2.1, 2.2): Urgent insertions (marked with INSERTED)
Milestone v1.0 is archived. The next step is defining fresh milestone requirements and roadmap phases.

- [ ] **Phase 1: Baseline Stabilization** - Lock environment, routing continuity, and migration guardrails.
- [ ] **Phase 2: Design System and Core UX Migration** - Establish shadcn foundation and migrate shell and key sections.
- [ ] **Phase 3: Section Completion and Quality Hardening** - Complete section migration, validation, testing, and accessibility.
- [ ] **Phase 4: Final Polish and Release Readiness** - Tune final UX quality, performance, and documentation.
## Notes

## Phase Details

### Phase 1: Baseline Stabilization
**Goal**: Establish a reliable technical baseline before visual and system migration.
**Depends on**: Nothing (first phase)
**Requirements**: QLTY-01, QLTY-04, I18N-01, QAV-04
**Success Criteria** (what must be TRUE):
1. Build and dependency baseline is stable for migration work.
2. Routing and language continuity behavior is documented and preserved.
3. Known code-level blockers are identified and triaged with explicit fixes.
**Plans**: 3 plans

Plans:
- [ ] 01-01: Resolve dependency and build baseline issues.
- [ ] 01-02: Normalize routing and language source-of-truth behavior.
- [ ] 01-03: Remove debug and dead-code blockers in active paths.

### Phase 2: Design System and Core UX Migration
**Goal**: Build shared design system foundation and deliver high-impact UX migration.
**Depends on**: Phase 1
**Requirements**: DSYS-01, DSYS-02, DSYS-03, DSYS-04, UX-01, UX-02, UX-03
**Success Criteria** (what must be TRUE):
1. shadcn foundation is initialized and integrated in the app.
2. Preset `b1Z5ezr60` is applied or Vega fallback is selected and documented.
3. App shell, navigation, and hero are migrated with improved hierarchy and consistent motion.
4. Shared primitives and semantic theme tokens are used across migrated core sections.
**Plans**: 4 plans

Plans:
- [ ] 02-01: Initialize shadcn and base theme primitives.
- [ ] 02-02: Validate preset `b1Z5ezr60`; apply Vega fallback if unresolved.
- [ ] 02-03: Migrate app shell, navigation, and hero.
- [ ] 02-04: Apply motion conventions and reduced-motion safeguards.

### Phase 3: Section Completion and Quality Hardening
**Goal**: Complete remaining migration and lock quality with verification gates.
**Depends on**: Phase 2
**Requirements**: UX-04, QLTY-02, QLTY-03, I18N-02, I18N-03, QAV-01, QAV-02, QAV-03
**Success Criteria** (what must be TRUE):
1. Remaining sections are migrated and visually consistent.
2. Translation-derived structured data is validated before rendering.
3. Language switching and translation parity remain correct.
4. Lint, typecheck, integration tests, and accessibility checks pass.
**Plans**: 4 plans

Plans:
- [ ] 03-01: Migrate remaining sections to shared primitives.
- [ ] 03-02: Add content adapter validation for translation objects.
- [ ] 03-03: Add integration tests for route and language continuity.
- [ ] 03-04: Add accessibility verification and resolve findings.

### Phase 4: Final Polish and Release Readiness
**Goal**: Finalize presentation quality and complete release documentation updates.
**Depends on**: Phase 3
**Requirements**: (cross-phase completion)
**Success Criteria** (what must be TRUE):
1. Mobile and desktop experiences are polished and consistent.
2. Performance and interaction quality are within acceptable thresholds.
3. Documentation and planning artifacts reflect shipped architecture.
**Plans**: 2 plans

Plans:
- [ ] 04-01: Final responsive, motion, and visual polish pass.
- [ ] 04-02: Update docs and release readiness checklist.

## Progress

**Execution Order:**
Phases execute in numeric order: 1 -> 2 -> 3 -> 4

| Phase | Plans Complete | Status | Completed |
|-------|----------------|--------|-----------|
| 1. Baseline Stabilization | 0/3 | Not started | - |
| 2. Design System and Core UX Migration | 0/4 | Not started | - |
| 3. Section Completion and Quality Hardening | 0/4 | Not started | - |
| 4. Final Polish and Release Readiness | 0/2 | Not started | - |
- Requirements for v1.0 are archived at [v1.0-REQUIREMENTS.md](./milestones/v1.0-REQUIREMENTS.md).
- Phase execution history remains in `.planning/phases/` and can be archived later with `$gsd-cleanup`.
Loading