Skip to content

Commit 3149061

Browse files
committed
chore: Update agents.md
1 parent 0635f62 commit 3149061

1 file changed

Lines changed: 3 additions & 57 deletions

File tree

agents.md

Lines changed: 3 additions & 57 deletions
Original file line numberDiff line numberDiff line change
@@ -35,45 +35,6 @@ pnpm test:report # Open HTML coverage report
3535

3636
---
3737

38-
## Folder Structure
39-
40-
```
41-
app/
42-
assets/
43-
fonts/ # Self-hosted Roboto & Roboto Mono
44-
icons/ # Custom SVG icons used with @nuxt/icon
45-
styles/ # Global SCSS partials (imported via main.scss)
46-
_colors.scss # CSS custom properties for colour tokens
47-
_font-sizes.scss
48-
_responsive.scss # CSS variables (DO NOT use in media queries)
49-
scss/variables/responsive.scss # SCSS variables — USE THESE in @media queries
50-
components/
51-
Navigation.vue
52-
ProjectList.server.vue # Server component — rendered at build time
53-
SiteFooter.vue
54-
layouts/
55-
default.vue
56-
pages/
57-
index.vue # Homepage: hero, about, skills, projects preview
58-
projects.vue
59-
work.vue
60-
links.vue
61-
[slug].vue # Dynamic pages driven by Nuxt Content
62-
utilities/
63-
variables.ts # Shared runtime constants (occupation, URLs, year, experience)
64-
content/
65-
privacy-policy.md
66-
public/
67-
projects/ # Project screenshots
68-
work/ # Work/employer logos
69-
nuxt.config.ts
70-
content.config.ts
71-
vitest.config.ts
72-
vitest.setup.ts
73-
```
74-
75-
---
76-
7738
## Key Conventions
7839

7940
### SCSS
@@ -90,36 +51,21 @@ vitest.setup.ts
9051
- Shared constants (occupation title, URLs, computed years of experience, current year) live in `app/utilities/variables.ts`.
9152
- Runtime env vars are exposed via `useRuntimeConfig()` — see `nuxt.config.ts` `runtimeConfig.public`.
9253

93-
### SEO / Schema
94-
- Per-page canonical URLs are set with `useHead()`.
95-
- Schema.org structured data uses `useSchemaOrg()` from `nuxt-schema-org`.
96-
- Global identity (Person schema for Jack Domleo) is configured in `nuxt.config.ts`.
97-
98-
### Components
99-
- `ProjectList.server.vue` is a Nuxt server component — keep data fetching server-side only.
100-
- `v-once` is used on static sub-trees (icons, navigation items) for performance.
101-
10254
### Content
10355
- Markdown pages in `content/` are served via `[slug].vue` using `<ContentRenderer>`.
10456
- Rich text styles are in `app/assets/styles/rich-text.scss`.
10557

10658
### Performance
10759
- `v-once` is applied to all static sub-trees (icons, nav items, footer) to prevent unnecessary re-renders.
108-
- `ProjectList.server.vue` is a Nuxt server component — data fetching is server-side only, reducing client JS.
109-
- Hero image uses `loading="eager"` and `fetchpriority="high"`; all other images use `loading="lazy" fetchpriority="low"`.
60+
- Use `ComponentName.server.vue` where applicable to keep data fetching server-side only.
61+
- Core web vitals are important so consider optimum performance without change behaviour or content.
11062
- Fonts are self-hosted (no remote font requests); `font-display: swap` is set in `_fonts.scss`.
11163
- The site is statically generated (`nuxi generate`) — all pages are pre-rendered HTML.
112-
- Animations are wrapped in `@media (prefers-reduced-motion: no-preference)` guards throughout.
11364

11465
### Accessibility
11566
- Follow WCAG 2.2 AA as a minimum standard.
116-
- Use semantic HTML elements (`<nav>`, `<header>`, `<footer>`, `<section>`, `<main>`, etc.) rather than divs where appropriate.
67+
- Use semantic HTML.
11768
- The `.sr-only` global utility class is used to provide screen-reader-only context (e.g. icon button labels, decorative link supplements).
118-
- Interactive elements (links, buttons) must always have an accessible label — either visible text or `aria-label` / `.sr-only` text.
119-
- Navigation uses `aria-label`, `aria-expanded`, `aria-controls`, `aria-hidden`, and `role="menu"` / `role="menuitem"` correctly.
120-
- All images must have meaningful `alt` text; decorative images use `alt=""`.
121-
- Focus management is handled for mobile nav open/close interactions.
122-
- `touch-action: manipulation` is applied globally to links and buttons to prevent 300ms tap delay on mobile.
12369

12470
---
12571

0 commit comments

Comments
 (0)