AGENTS.md — Repository Guide for AI Assistants

This repository hosts the official personal academic, research, and dissemination website for Rubén Mulero:

  • Live URL: https://www.rubenmulero.com
  • GitHub Repository: rubenmulero/rubenmulero.github.io
  • Hosting Platform: GitHub Pages (custom domain via CNAME)
  • Primary Language: English (all user-facing content, posts, and publications must be written in English).

1. Owner Profile & Affiliations

When generating text, bios, or metadata, adhere to the following identity:

  • Name: Rubén Mulero
  • Current Position: Research Scientist at Tecnalia Research & Innovation (Derio, Bizkaia, Spain) and PhD Candidate at the University of the Basque Country (UPV/EHU).
  • Doctoral Co-Advisors:
    • Dr. Roberto Garay Martinez (Principal Investigator of Energy Unit, DeustoTech, University of Deusto; Institute of Technology, Faculty of Engineering, Av. Universidades 24, 48007 Bilbao, Spain) — https://robertogaray.com/
    • Dr. Iñigo Mendialdua (Department of Computer Languages and Systems, University of the Basque Country / UPV/EHU, Manuel Lardizabal Ibilbidea, 1, 20018 Donostia, Gipuzkoa, Spain) — LinkedIn
  • Core Research Areas:
    • Artificial Intelligence & Deep Reinforcement Learning (DQN, PPO, DDPG, SAC)
    • Model Predictive Control (MPC) & Evolutionary Optimization
    • Building Energy Management Systems (BEMS) & HVAC Optimization
    • Empirical Testing at KUBIK (Tecnalia’s full-scale experimental smart building test facility)
    • Ground Source Heat Pumps (GSHP), District Heating, and Smart Grids
  • Verified Profiles:

2. Architecture & Deployment Workflow

  1. Jekyll Static Engine: Standard Jekyll 3.10 native GitHub Pages configuration.
  2. CI/CD Pipeline (.github/workflows/pages.yml):
    • Automatically triggered on every git push to the master branch.
    • Executes actions/jekyll-build-pages and deploys artifacts to GitHub Pages (actions/deploy-pages).
  3. Custom Domain:
    • Root file CNAME contains www.rubenmulero.com.
    • CRITICAL: NEVER delete or alter CNAME unless explicitly instructed by the user.

3. Directory & File Map

rubenmulero.github.io/
├── favicon.ico                  # Multi-resolution root favicon (16x16, 32x32, 48x48)
├── CNAME                        # Points custom domain to GitHub Pages (DO NOT DELETE)
├── _config.yml                  # Global Jekyll settings, metadata, social links, plugins
├── index.html                   # Homepage (Hero, profile card, highlights, recent papers, blog previews)
├── feed.xml                     # RSS 2.0 Feed generator (Liquid-based)
│
├── _data/                       # STRUCTURED DATA (Modify these to add content)
│   ├── publications.yml         # All papers, DOIs, categories, and BibTeX citations
│   ├── research.yml             # Core research lines and portfolio summaries
│   ├── cv.yml                   # Timeline of work, education, advisors, and skills
│   ├── collaborators.yml        # Frequent co-authors and academic network
│   └── navigation.yml           # Header navigation links
│
├── _posts/                      # Blog articles in Markdown (YYYY-MM-DD-title.md)
│   ├── 2020-05-01-site-launched.md
│   ├── 2025-06-15-training-workbench-intelligent-energy-operators.md
│   └── 2026-10-29-relaunching-personal-website.md
│
├── _layouts/                    # Page layouts
│   ├── default.html             # Base shell (head, header, main, footer, main.js)
│   ├── page.html                # Standard page container with title header
│   └── post.html                # Blog post layout with metadata, author box, RSS, and nav
│
├── _includes/                   # Reusable components
│   ├── head.html                # Meta tags, fonts, styles, MathJax, RSS autodiscovery, favicons
│   ├── header.html              # Sticky navigation, logo monogram, theme toggle, mobile hamburger
│   ├── footer.html              # Affiliations, quick links, academic profiles, RSS button
│   └── publication_item.html    # Card with category badge, author highlighting, DOI, and BibTeX copy
│
├── assets/                      # Static assets
│   └── images/
│       ├── ruben-mulero.jpg     # User portrait photo (1024x1024 high-res)
│       ├── favicon.png          # 32x32 browser tab icon
│       ├── favicon-192.png      # 192x192 high-res favicon
│       ├── apple-touch-icon.png # 180x180 Apple touch icon
│       └── favicon.ico          # Multi-resolution favicon resource
│
├── css/
│   └── main.css                 # Comprehensive CSS with CSS custom properties (Light/Dark themes)
├── js/
│   └── main.js                  # Theme toggle, mobile menu, publication filter, BibTeX copy
│
├── publications/index.html      # Filterable publications catalog (Journals, Conferences, Books)
├── research/index.html          # Deep-dive into research lines and contributions
├── blog/index.html              # Chronological blog listing with RSS subscription
├── blog/atom.xml                # Legacy Atom feed compatibility
├── cv/index.html                # Interactive CV and timeline
├── bio/index.html               # Dedicated Biography, academic trajectory, and collaborators
├── about/index.html             # Legacy route redirecting to /bio/
└── contact/index.html           # Office address, email, LinkedIn, and verified scientific profiles

4. How to Perform Common Maintenance Tasks

Task A: Adding a New Scientific Publication

Do not edit raw HTML. Open _data/publications.yml and prepend or insert a new entry into the YAML array:

- title: "Title of Your Paper or Conference Article"
  authors: "Rubén Mulero, Roberto Garay-Martinez, Iñigo Mendialdua, et al."
  year: 2026
  category: journal                # Allowed: 'journal', 'conference', or 'book'
  category_label: "Journal Article" # Display text: 'Journal Article', 'Conference Paper', 'Book Chapter'
  venue: "Applied Energy"
  doi: "https://doi.org/10.1016/j.apenergy.2026.12345"
  doi_id: "10.1016/j.apenergy.2026.12345"
  featured: true                   # Set to true to highlight with a gold star badge

Note: In publication_item.html, the author string automatically bolds any occurrence of "Rubén Mulero".

Task B: Publishing a New Blog Post

Create a file inside _posts/ with the standard naming convention: YYYY-MM-DD-your-slug.md.

Example file structure:

---
layout: post
title: "Article Title Here"
date: 2026-11-15
tags: ["Reinforcement Learning", "Building Simulation", "Research"]
excerpt: "A concise 1-2 sentence preview used on the blog index and in RSS readers."
math: true # Optional: set to true to enable LaTeX MathJax equations ($...$ and $$...$$)
---

Introductory paragraph...

### Section Heading

Write in standard Markdown. Fenced code blocks with language specifiers are supported:

```python
import torch
# Example code

Equations can be written with LaTeX when math: true is enabled: \(Q(s, a) = r + \gamma \max_{a'} Q(s', a')\)


### Task C: Updating Research Lines / Funded Projects
Edit `_data/research.yml`. Each item has:
```yaml
- id: "unique-anchor-id"
  title: "Project / Research Title"
  acronym: "SITEBOT"               # Optional: short acronym
  funding: "European Commission — Horizon Europe" # Optional: grant agency
  program: "EIC Pathfinder Challenges" # Optional
  grant_id: "101307035"            # Optional: grant agreement number
  cordis_url: "https://cordis.europa.eu/project/id/101307035" # Optional
  dimensions_url: "https://app.dimensions.ai/..." # Optional
  duration: "October 2026 – September 2030" # Optional
  summary: "Short summary for home page cards."
  tags: ["Swarm Robotics", "Robotics", "EIC Pathfinder"]
  icon: "cpu"
  description: "Comprehensive multi-paragraph explanation."
  highlights:
    - "Key contribution 1."
    - "Key contribution 2."

Task D: Updating Experience, Grants, or Education in CV

Edit _data/cv.yml. Work positions, funded European grants (grants: array), educations, advisors, and skills are rendered dynamically inside /cv/index.html.

Task E: Updating Collaborators & Academic Network

Edit _data/collaborators.yml. Add or modify co-authors, roles, institutions, research focus, and external URLs (ORCID, LinkedIn, University profiles). Renders dynamically inside /about/index.html.


5. Styling & Design System Guidelines

  • Theme Palette: Built on CSS Custom Properties in css/main.css.
    • Light mode: Clean white background (#ffffff), soft slate cards (#f8fafc), deep text (#0f172a), royal blue accent (#2563eb).
    • Dark mode ([data-theme="dark"]): Deep midnight background (#090d16), navy cards (#131d31), sky blue accent (#38bdf8).
  • Typography:
    • UI, headings, buttons, tags: Inter, sans-serif.
    • Prose / article body: Merriweather, serif.
    • Code / BibTeX: JetBrains Mono, monospace.
  • Cache-Busting: _includes/head.html appends ?v=1793293886 to main.css to prevent stale browser caching upon redeployment.

6. Deployment Protocol

Whenever an agent makes edits to this repository:

  1. Verify that all YAML files in _data/*.yml and _config.yml are strictly valid.
  2. Ensure no non-whitelisted Jekyll gems are added to _config.yml (allowed: jekyll-feed, jekyll-seo-tag, jekyll-sitemap).
  3. Commit and push directly to origin master:
    git add .
    git commit -m "feat(or fix): descriptive summary"
    git push origin master
    
  4. GitHub Actions will trigger automatically. Check run status via GitHub CLI or API if verification is required.