This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
This is the GitHub Pages deployment repository for the Geometric Intelligence Lab (https://geometric-intelligence.github.io/). It serves as a centralized documentation portal hosting pre-built static sites for multiple research projects.
Critical: This repository contains ONLY compiled artifacts and built documentation. Source code lives in separate repositories (herbrain, polpo, TopoBench, etc.). Do not attempt to modify source files here.
The repository hosts documentation for these projects:
- herbrain/ - Brain imaging analysis (menstrual cycle and pregnancy brain dynamics)
- polpo/ - Collection of utility tools with API documentation
- neurometry/ - Neural measurement and analysis tools
- topobench/ - Benchmarking framework for topological deep learning
- topobenchmark/ - Variant of TopoBench with additional features
- topotune/ - Framework for Generalized Combinatorial Complex Neural Networks (custom HTML site)
- dynamical_phases/ - ICML 2025 paper: "Dynamical phases of short-term memory mechanisms in RNNs"
- agf/ - Work-in-progress project (currently empty)
Each subdirectory contains a complete standalone static site.
This repository uses automated CI/CD deployment:
- Source repositories (e.g.,
geometric-intelligence/herbrain,geometric-intelligence/polpo) build their documentation using Sphinx - GitHub Actions in source repos automatically push built HTML/assets to this repository
- Commits follow the pattern:
Deploying to main from @ geometric-intelligence/[PROJECT]@[COMMIT_HASH] 🚀 - GitHub Pages serves content from the
mainbranch
Most projects use:
- Sphinx for Python API documentation
- PyData Sphinx Theme for styling
- nbsphinx for Jupyter notebook integration
- MathJax for mathematical equations (neurometry)
Exception: topotune/ uses custom HTML with Bulma CSS framework for a polished landing page.
Since this is static HTML, you can preview changes locally:
# Serve any project directory locally
cd herbrain
python -m http.server 8000
# Open http://localhost:8000 in browser
# Or use any other static server
npx serve polpoCommon Sphinx artifacts in each project directory:
.buildinfo- Sphinx build metadataobjects.inv- Cross-reference inventory for intersphinx_static/- CSS, JavaScript, images_images/- Generated images from notebooks_generated/- Auto-generated API documentation.nojekyll- Tells GitHub Pages to skip Jekyll processing
Main Branch: Production deployment (served by GitHub Pages) Feature Branches: For testing multi-project updates before deployment
When working on feature branches (like ninamiolane/agf):
# Check current branch
git branch
# View recent deployments
git log --oneline -20
# Each commit references the source repository and commit SHATo add a new project to this documentation portal:
-
In the source repository:
- Set up Sphinx documentation
- Configure GitHub Actions to build and deploy to this repo
- Use the same deployment commit message pattern
-
In this repository:
- Create a new subdirectory for the project
- Ensure it contains
.nojekyllfile - Update the main index if there is one
DO NOT:
- Edit HTML files directly (they will be overwritten on next deployment)
- Modify
_static/,_images/, or_generated/directories - Delete
.buildinfoorobjects.invfiles - Commit local build artifacts (
_doctrees/,_sources/at root level)
DO:
- Keep
.nojekyllfiles in place - Preserve the deployment commit message format
- Test changes locally before pushing
- Coordinate multi-project updates on feature branches
The .nojekyll file at the root (and in each subdirectory) tells GitHub Pages:
- Do not process files through Jekyll
- Serve all content as-is
- Respect custom
_prefixed directories (normally ignored by Jekyll)
- Check the source repository's GitHub Actions workflow
- Verify the build succeeded in the source repo
- Check if the deployment commit reached this repo
- Verify
objects.invfiles exist for intersphinx cross-references - Check that project URLs follow the pattern:
https://geometric-intelligence.github.io/[project]/
- This repo is ~760MB due to Jupyter notebooks and images
- This is expected for a documentation portal with multiple projects
- Individual projects can optimize by compressing images in their source repos