Developer Guide
Welcome to the DynVision Developer Guide! This section provides comprehensive resources for contributors, maintainers, and AI assistants (like Claude Code) working on the DynVision codebase.
Purpose¶
The Developer Guide serves multiple audiences:
- Contributors: Understand architecture, follow coding standards, learn workflows
- Maintainers: Track TODOs, plan features, manage dependencies
- AI Assistants: Comprehensive context for Claude Code and similar tools
- Researchers: Understand design decisions and biological motivations
Organization¶
The Developer Guide is organized into four main sections:
π Planning¶
Forward-looking documentation tracking what needs to be done:
- Documentation TODOs: Open documentation tasks
- Missing pages and sections
- Doc/code consistency issues
-
Content-quality improvements
-
Development Roadmap: Planned improvements to the toolbox
- Compatibility & packaging (Python 3.12/3.13, templates)
- Configuration, parameters, and logging
- Workflow, reproducibility, performance, and testing
When to use: Before starting new work, check these files to avoid duplication and align with project priorities.
π Guides¶
How-to information for developers and AI assistants:
- AI Style Guide: START HERE - Core principles for AI-assisted research software development
- Research software best practices (scientific correctness, reproducibility, performance)
- Investigation β Analysis β Implementation workflow
- Code organization, documentation, testing, error handling
- Communication and collaboration guidelines
- General principles applicable to any research software project
-
Use this to prime AI assistants before working on any task
-
Claude Code Guide: DynVision-specific context for Claude Code (formerly CLAUDE.md)
- Project overview and design philosophy
- Development commands (setup, running experiments, code quality)
- Detailed architecture (multi-inheritance, base classes, components)
- Configuration system and parameter handling
- Common workflows (adding models, experiments, recurrent connections)
- Known issues and quick reference
-
Use this after the AI Style Guide for project-specific details
-
Documentation Style Guide: Standards for writing documentation
- Documentation philosophy and structure
- Writing style and formatting
- Code examples and API documentation
- Diagrams and visual elements
-
Review checklist
-
Research Software: Considerations for Software Dev in Research
- Expert research software developer agent persona
- Code review and analysis framework (scientific correctness, architecture, performance, quality, documentation)
- Structured deliverables format (executive summary, detailed analysis, code examples, roadmap)
- Specialized areas (scientific computing optimization, neural networks, computational neuroscience)
- Software engineering best practices (testing, documentation, reproducibility, sustainability)
-
Project-specific applications and context adaptation
-
Software Patterns: Design patterns for scientific computing
- Architectural patterns (Layered, Pipeline, Domain-Driven Design, Event-Driven)
- Creational patterns (Factory, Abstract Factory, Builder, Singleton, Prototype)
- Structural patterns (Adapter, Facade, Composite, Decorator, Bridge)
- Behavioral patterns (Strategy, Observer, Command, Template Method, State, Iterator, Visitor)
- Scientific computing patterns (Computation Graph, Lazy Evaluation, Parameter Management, Data Pipeline, Experiment Tracking)
When to use:
- AI Assistants: Start with AI Style Guide β Claude Code Guide β other guides as needed
- Human Developers: Reference guides when developing features, writing docs, or onboarding
π§ Dependencies¶
Knowledge about external frameworks and libraries:
- Snakemake: Workflow management system
- Fundamentals of Snakemake (rules, wildcards, config)
- DynVision workflow structure
- Writing new rules and experiments
- Debugging workflows
-
Cluster integration
-
PyTorch Lightning: Deep learning framework
- Lightning integration in DynVision
- LightningModule structure
- Training loops and callbacks
- Logging and checkpointing
-
Multi-GPU training
-
FFCV: Fast data loading library
- What FFCV is and when to use it
- Installation and setup
- Creating .beton files
- Performance considerations
- Troubleshooting
When to use: Learning about framework capabilities, debugging integration issues, or optimizing performance.
Navigation Tips¶
For New Contributors¶
Recommended reading order:
- Start with Claude Code Guide for project overview
- Reference Research Software for design guidance
- Consult Documentation Style Guide when writing docs
- Review Documentation TODOs to find contribution opportunities
- Check Development Roadmap for aligned feature work
For AI Assistants¶
Required Reading Order:
- AI Style Guide first - Establishes core principles for research software development
- Claude Code Guide second - Provides DynVision-specific architecture and conventions
The AI Style Guide teaches you how to approach research software tasks with emphasis on:
- Scientific correctness and reproducibility
- Investigation β Analysis β Implementation workflow
- Performance optimization strategies
- Documentation and testing standards
- Communication with researchers
The Claude Code Guide provides project-specific context:
- Complete architecture with inheritance diagrams
- All parameter aliases and conventions
- Common workflows with examples
- Known issues and inconsistencies
Together, these guides minimize the need for extensive code reading while ensuring accuracy and adherence to best practices.
For Maintainers¶
Track project health via:
- Documentation TODOs - open documentation tasks
- Development Roadmap - planned toolbox improvements
Both files group items by area for easy scanning.
Quick Links¶
Most Referenced:
- Claude Code Guide - Complete developer reference
- Todo Docs - Known documentation issues
- Roadmap - Planned toolbox improvements
Dependency Docs:
- Snakemake Patterns - Workflow management
- PyTorch Lightning - Training framework
-
FFCV Integration - Fast data loading
-
Software Patterns: Design patterns for scientific computing
- Architectural patterns, creational/structural/behavioral patterns, scientific computing patterns
- When to use: Design guidance for new components
Contributing Workflow¶
- Find a Task: Check Documentation TODOs or Development Roadmap
- Understand Context: Read Claude Code Guide architecture section
- Follow Standards: Reference Documentation Style Guide
- Implement: Use codebase patterns for guidance
- Test: Add tests (see Roadmap #29-#31 for test infrastructure plans)
- Document: Update relevant docs following style guide
- Review: Check against Claude Code Guide for consistency
Keeping Documentation Current¶
This Developer Guide should be updated:
- When adding features: Update Claude Code Guide architecture
- When finding bugs: Add to Documentation TODOs
- When planning work: Update Development Roadmap
- When writing docs: Follow Documentation Style Guide
- When changing dependencies: Update relevant dependency docs
Related Resources¶
- Main Documentation: User-facing documentation
- Contributing Guide: How to contribute
- Getting Started: First steps with DynVision
- User Guide: Task-oriented guides
- Reference: API and component reference
Questions or Feedback?¶
- Check Documentation TODOs to see if your question is a known issue
- Open a GitHub issue for new documentation needs
- Contact maintainers: robin.gutzen@nyu.edu
Last Updated: 2025-10-23
This Developer Guide is maintained by the DynVision team and is designed to evolve with the project. Contributions and suggestions are welcome!