Conversation
Create HYRAX_GUIDE.md as the canonical shared reference, CLAUDE.md for Claude Code, and rewrite .github/copilot-instructions.md for Copilot. This deduplicates content and fixes inaccuracies identified in PRs #635, #656, and #657: Python version (>=3.11), ConfigDict (Pydantic's, not custom), verbs (internal only), primary interface (notebooks), config philosophy (three-tier "Configuration OR Code"), manifest files (compromise, not design goal), changelogs (none), Pydantic scope (data_request only), and HyraxCifarDataset spelling. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Pull request overview
This pull request consolidates AI coding assistant instructions into a canonical reference document. The PR creates a new HYRAX_GUIDE.md that serves as the single source of truth for project conventions, architecture, and development workflows, while updating both CLAUDE.md and .github/copilot-instructions.md to reference it rather than duplicating content.
Changes:
- Creates comprehensive
HYRAX_GUIDE.mdcovering project architecture, design principles, development setup, repository structure, and common workflows - Refactors
CLAUDE.mdto be Claude-specific, deferring to HYRAX_GUIDE.md for general information - Refactors
.github/copilot-instructions.mdto be Copilot-specific, deferring to HYRAX_GUIDE.md for general information - Fixes Python version requirement from 3.10 to 3.11 (matching pyproject.toml)
Reviewed changes
Copilot reviewed 3 out of 3 changed files in this pull request and generated 2 comments.
| File | Description |
|---|---|
HYRAX_GUIDE.md |
New canonical reference guide for AI assistants; documents design principles, architecture, plugin registries, configuration system, and development workflows |
CLAUDE.md |
Simplified to Claude Code-specific guidance; references HYRAX_GUIDE.md for comprehensive project information |
.github/copilot-instructions.md |
Simplified to GitHub Copilot-specific guidance; emphasizes long-running command timeouts and validation workflow; references HYRAX_GUIDE.md |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #679 +/- ##
=======================================
Coverage 62.96% 62.96%
=======================================
Files 59 59
Lines 5730 5730
=======================================
Hits 3608 3608
Misses 2122 2122 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
|
@copilot Please review the robot instructions on this branch, and comment on any issues that would be confusing or unclear to an agent |
Click here to view all benchmarks. |
| - **Error guided Migration**: Documentation tells how the current thing works. Errors explain what | ||
| documentation to follow to move from old to new | ||
| - **Backward compatibility when possible**: Maintain compatibility or provide clear upgrade path | ||
|
|
There was a problem hiding this comment.
General feedback
High level Assertions (not true today, but want to be):
- Support Pytorch now, but we want to support other frameworks down the line: (List specific disciplines we're holding to leave room for this.)
- Moving toward a ecosystem model where datasets and models are easily selectable by the user/ want to support open/community contributed models and datasets a-la-carte
- General principle of future support for iterator datasets and continous running; however today there's a strict rule that all data is of finite size and map-style random access. Access by index!!
- Want most datsets and models to be external libraries; however, today we don't have enough examples for most users to do this!
Missing Principles:
- Everything is Numpy so much as it possibly can be. Up until the last moment where data is fed to the model (in specific function in pytorch ignite). Motive is framework independence.
- Push against perfusion of verbs and configs. We want to avoid adding new ones.
Note about boyscouting/ leaving it better than you found it/ Making it so the current assumptions of a change appear to have always been true.
"Matplotlib for ML": Understand the LEVEL of our users. Our users write code, but they can't really handle classes or multiple files so you need example-driven documentation showing the right way to use these primitives. Go for compact inspirational examples which demonstrate the breadth of the framework.
There was a problem hiding this comment.
Last point: Common customizations ought to happen at the notebook level! Should be easy for researchers to get started in a notebook, they can deal with publishing code as an external plugin later. (mostly for documentation, but also for notebook interface design)
| # Slow / integration tests | ||
| python -m pytest -m "slow" | ||
|
|
||
| # All tests |
There was a problem hiding this comment.
(Note of don't run)
|
|
||
| TOML has no `None`. Hyrax uses `false` as a sentinel meaning "not set / use default | ||
| behavior." Code that reads these keys must treat the boolean `False` as `None`. | ||
|
|
There was a problem hiding this comment.
String = "" also a reasonable convention.
No description provided.