Developer Guide
This chapter is for HABIT contributors and developers building extensions. It is the entry point for understanding HABIT at the architectural and implementation levels. Researchers who only want to use the software should start with Installation.
The chapter follows three stages: understand the system, locate the relevant code, and extend or contribute to the project.
1. Understand HABIT (design and mental model)
2. Code organization (where to look)
3. Extensions and contributions (how to work)
Recommended reading order
New to HABIT
Design Philosophy — The five design principles and their trade-offs.
Core Concepts and Mental Model — Core terminology and the system mental model.
Architecture — Layers, configuration assembly, and CLI-to-core mapping.
Complete Request Lifecycle — Follow one command through the complete request lifecycle.
Changing the code
Code Map — Where each type of code lives and where to start.
Configuration System — The YAML → Schema → Configurator → runtime object pipeline.
Subsystems — Internal execution flows for habitat analysis and machine learning.
Extending or contributing
Extension and Plugin Guide — The eight extension points and their registration mechanisms.
Invariants and Architecture Contracts — Rules that must not be broken before changing code.
Contributor Workflow — Environment setup, tests, and implementation steps.
Contributing — Pull-request and coding conventions.
Note
This chapter focuses on architecture and mechanisms. Complete, copy-ready component templates are available in Customization and Extension Guide.
Environment summary: Python 3.10, pip install -e ., and pytest tests/.
See the Developer sidebar for the API and third-party library references.