Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
1 change: 1 addition & 0 deletions .ai/deployment.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ Build once, promote the same artifact, automate checks, and reduce blast radius
- Prefer canary/rolling releases and automatic rollback on objective signals.
## Rules
- Every published version must have matching npm and GitHub Release artifacts from the same tested commit. Product changelogs link each immutable version to both registries and never advertise an unavailable download.
- Public sites define canonical metadata, descriptive titles, unique route descriptions, complete sitemaps, robots policy, SoftwareApplication structured data, and 1200×630 Open Graph/Twitter artwork. Shared-link previews use the approved product mark and meaningful product copy.
- Vercel is the default deployment platform for Next.js applications. Use another platform only when project requirements document a concrete reason.
- Connect the Git repository to Vercel so pull requests receive preview deployments and the protected production branch deploys to production.
- Secrets and environment configuration stay outside artifacts.
Expand Down
1 change: 1 addition & 0 deletions .ai/design.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,7 @@ Clarity precedes decoration. Use restrained surfaces, strong hierarchy, delibera

## Rules
- Preserve the approved product mark exactly across the header, favicon, downloads, PWA, and desktop packaging. Never invent, split, redraw, or substitute the logo without explicit approval.
- Version favicon and PWA icon URLs when artwork changes so browsers, service workers, and deployment CDNs invalidate stale icon caches.
- Theme changes use a click-origin circular reveal when the View Transition API is available: capture trigger coordinates, calculate the farthest-corner radius, and animate `::view-transition-new(root)` with a circular `clip-path`. Fall back immediately and disable the reveal for `prefers-reduced-motion`.
- Theme changes must update the root theme class without a flash of incorrect theme; components use semantic tokens rather than theme-specific hard-coded colors.
- Light and dark themes must both preserve WCAG contrast for body copy, muted copy, links, icons, borders, code blocks, terminals, syntax states, callouts, and interactive controls. A theme is incomplete if only the page background changes.
Expand Down
2 changes: 2 additions & 0 deletions .ai/documentation.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,8 @@ Document decisions and contracts near their owners. Prefer concise, tested, main
- Never duplicate an authoritative rule; link to it.
- Remove stale guidance rather than adding contradictory notes.
- A documentation page is not complete without mobile navigation, deep-linkable headings, designed code/callout states, SEO metadata, and a clear next action.
- Each primary side-navigation concept owns a stable route rather than only an in-page anchor. Every article provides contextual previous and next navigation.
- Installation documentation must complete the journey for every supported operating system and distribution surface, including prerequisites, CLI/global/npx paths, desktop installation, verification, expected results, and troubleshooting.
## Examples
```text
docs/adr/0023-use-outbox.md: Context → Decision → Consequences → Status
Expand Down
3 changes: 3 additions & 0 deletions .ai/performance.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,9 @@ Performance is a budget tied to experience, not late-stage tuning. Measure befor
- Eliminate waterfalls, batch I/O, paginate data, cache only with explicit freshness/invalidation.
- Budget JavaScript, images, queries, memory, and third-party work.
## Rules
- Server-render meaningful page content immediately. Intersection reveals must enhance already-visible HTML; never hide content until hydration or make mounting depend on animation libraries.
- Prefer CSS and a small native `IntersectionObserver` for routine reveals. Do not ship Framer Motion or GSAP for effects achievable with transforms, opacity, and CSS keyframes.
- Import icons and utilities from direct module paths when a package barrel materially increases the client bundle.
- Benchmark representative data and devices; never claim speed from intuition.
- Every cache states key, owner, TTL, invalidation, and stale behavior.
- Avoid unbounded work in requests, renders, and queues.
Expand Down
Loading