TerraFin / docs /development.md
sk851's picture
docs: add structured docs site and agent guides
9fe4fad
---
title: Development Guide
summary: Local workflow for code, docs, tests, notebooks, and frontend changes.
---
# Development Guide
This page is the maintainer-facing companion to the product docs.
## Repo Layout
| Path | Purpose |
|------|---------|
| `src/TerraFin/data/` | Data providers, normalization, and output types |
| `src/TerraFin/analytics/` | Indicators, DCF, risk, options, portfolio, and simulation helpers |
| `src/TerraFin/interface/` | FastAPI app, page routes, and frontend |
| `src/TerraFin/agent/` | External-agent client, hosted runtime, model runtime, and tools |
| `docs/` | Formal documentation site source |
| `tests/` | Automated regression coverage |
| `notebooks/` | Manual and demo notebooks only |
## Local Setup
```bash
pip install -e ".[dev]"
```
Add extras when needed:
```bash
pip install -e ".[db]"
pip install -e ".[notebooks]"
pip install -e ".[docs]"
```
## Tests
Core Python tests:
```bash
pytest
```
Agent-focused slice:
```bash
pytest tests/agent tests/interface/test_agent_api.py
```
Packaging smoke:
```bash
python -m build
python scripts/package_smoke.py
```
## Frontend
The frontend lives under `src/TerraFin/interface/frontend/`.
Typical commands:
```bash
npm install
npm run build
```
When you touch page-specific agent context, DCF workbenches, or the hosted
assistant widget, verify both desktop and mobile flows.
## Docs Site
TerraFin now ships a formal static docs site using MkDocs Material.
Preview locally:
```bash
pip install -e ".[docs]"
mkdocs serve
```
Build locally:
```bash
mkdocs build --strict
```
GitHub Pages deployment is defined in `.github/workflows/docs-pages.yml`.
## Notebook Rules
Notebooks are for human-guided exploration, not automated tests.
- keep notebooks under `notebooks/`
- do not use a `test_` prefix for notebook filenames
- promote stable notebook logic into `tests/test_*.py` if it becomes regression-critical
Detailed notebook guidance lives in [Notebooks](notebooks.md).
## External Artifacts
Some code-adjacent references remain useful even though they are not formal
docs pages:
- analytics implementation notes:
[src/TerraFin/analytics/analysis/README.md](https://github.com/KiUngSong/TerraFin/blob/main/src/TerraFin/analytics/analysis/README.md)
- shipped TerraFin skill:
[skills/terrafin/SKILL.md](https://github.com/KiUngSong/TerraFin/blob/main/skills/terrafin/SKILL.md)
## Related Docs
- [Feature Integration](feature-integration.md)
- [Analytics Notes](analytics-notes.md)
- [Notebooks](notebooks.md)