Files
flixcooks-website/.agents/brain.md
T

3.3 KiB

FlixCooks Project Brain

This document summarizes the architectural knowledge, conventions, and learnings accumulated during our session.

1. Project Architecture & Stack

  • Backend: Vanilla PHP. The project intentionally avoids heavy frameworks.
  • Database: Flat-file JSON database (data/recipes.json). Data is loaded and saved via utility functions in helpers.php.
  • Admin Panel (admin.php): Acts as a lightweight CMS. It uses simple textareas where each line maps to an array element (e.g., for ingredients, steps, step_videos, step_timers). This keeps the JSON structure clean and parsing straightforward.
  • Frontend: Server-rendered PHP templates (index.php, recipe.php) with Vanilla JavaScript and Vanilla CSS. No Tailwind or heavy component libraries.

2. Design & Aesthetics

  • CSS: Highly customized CSS with modern design tokens (e.g., var(--ease-out-expo), var(--surface-1)).
  • Animations: Employs sophisticated micro-animations, glassmorphism (backdrop-filter: blur), and dynamic layouts (e.g., clip-path for overlays).
  • Smooth Scrolling: Uses Lenis (LenisSmoothScroll).
    • Crucial Rule: Whenever a fullscreen overlay (like the Cooking Mode) is opened, lenis.stop() must be called to prevent background scrolling. When closed, call lenis.start().
  • Preloader: A custom CapitoliumPreloader runs on the homepage. It is cached in sessionStorage('flixcooks_preloader_seen') so it only fires once per browsing session.

3. Antigravity Agent Configuration

  • Workspace Rules: Best placed in .agents/rules/ (e.g., AGENT.md). To ensure they are always active, the frontmatter must include:
    always_on: true
    glob: "*"
    
  • Custom Skills: Can be defined as JSON files in .agents/skills/. We successfully created close_feature.json to automate the Git workflow of checking out main, merging a feature branch, verifying functionality, and deleting the branch.

4. GitHub Actions & CI/CD

  • Gemini Code Review Automation: We integrated petarzarkov/gemini-code-review-action to automatically review PRs.
    • Secrets: Must be passed using env: instead of with: (e.g., GEMINI_API_KEY, GITHUB_TOKEN), otherwise the action fails with unexpected input errors. NEVER hardcode API keys in workflow files.
    • Model Naming: Google's v1beta API is very strict. gemini-1.5-flash often fails. You must use the fully-qualified name like gemini-1.5-flash-latest or gemini-2.0-flash-lite.
    • Pinning Versions: Always pin GitHub Actions to a specific version tag (e.g., @v1.0.4) rather than @latest to prevent unexpected breaking changes.

5. Completed Milestones

  • Phase 3 (Nutrition): Implemented. Recipes now store calories, protein, carbs, and fat. Admin panel handles inputs, and the UI displays them beautifully.
  • Phase 4 (Interactive Cooking Mode): Implemented. Recipes now support step-by-step looping background videos and interactive timers (step_videos, step_timers). The UI utilizes a fullscreen overlay slider with Vanilla JS logic.

6. Next Steps

According to TODO.md, the next major feature block is Phase 5 (PWA & Offline Support), which involves service workers, manifest files, and enabling the app to be installable on mobile devices.