Skip to content

Commit d6b4557

Browse files
authored
Merge pull request #26 from OSLA-project/add-claude-md
Started claude.md
2 parents 0625ad9 + 5e08524 commit d6b4557

1 file changed

Lines changed: 66 additions & 0 deletions

File tree

CLAUDE.md

Lines changed: 66 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,66 @@
1+
# CLAUDE.md
2+
3+
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
4+
5+
## Project Purpose
6+
7+
This is a **documentation-only repository** for the LARA (Lab Automation Research Architecture) tutorial, built with MkDocs Material. It documents the PythonLab component — a Python-based language for defining laboratory automation workflows. There is no application source code to run or test.
8+
9+
## Commands
10+
11+
**Package manager:** `uv` (not pip directly)
12+
13+
```bash
14+
# Serve docs locally with live reload
15+
make serve
16+
# or equivalently:
17+
mkdocs serve --livereload
18+
19+
# Regenerate API reference docs from the pythonlab package
20+
python generate_docs.py
21+
22+
# Install dependencies
23+
uv sync
24+
25+
# Deploy to GitHub Pages (CI does this automatically on push to main)
26+
mkdocs gh-deploy --force
27+
```
28+
29+
## Architecture
30+
31+
### Documentation Structure (`docs/`)
32+
33+
- `index.md` — Landing page with LARA system architecture overview
34+
- `quickstart.md` — Docker + Python setup guide for users
35+
- `customization.md` — Guide for adapting LARA to a custom lab
36+
- `pythonlab/` — PythonLab framework deep-dives (introduction, processes, API reference)
37+
- `wrappers.md` — Device wrapper interface (SiLA2 standard)
38+
- `assets/` — SVG logos and PNG screenshots
39+
40+
### Auto-generated API Docs
41+
42+
`generate_docs.py` introspects the installed `pythonlab` package (installed from the OSLA GitLab PyPI source) and uses `templates/api_reference.md.jinja2` to generate `docs/pythonlab/api_reference.md`. Run this script when the `pythonlab` package is updated to refresh the API reference.
43+
44+
### Key Concepts in the Docs
45+
46+
- **PythonLab language**: Python functions decorated as processes, converted to DAGs for scheduling
47+
- **Resources**: Services (devices), Labware, Substances, Data — the four resource types
48+
- **SiLA2**: The underlying device communication protocol
49+
- **Orchestrator**: Schedules and executes process DAGs across lab devices
50+
51+
### MkDocs Configuration (`mkdocs.yml`)
52+
53+
Uses Material theme with: mermaid diagrams (mkdocs-mermaid2-plugin), image lightbox (mkdocs-glightbox), pan/zoom (mkdocs-panzoom-plugin), and mkdocstrings for API reference rendering.
54+
55+
### CI/CD
56+
57+
GitHub Actions (`.github/workflows/main.yml`) deploys to GitHub Pages on every push to `main` via `mkdocs gh-deploy --force`.
58+
59+
### Software packages
60+
This documentation describes the usage of the LARA lab automation toolkit, which consists of the following software packages:
61+
62+
| Package | PyPI | GitLab Repository |
63+
|---------|------|-------------------|
64+
| PythonLab | [uuPythonlab](https://pypi.org/project/uuPythonlab/) | [pythonLab](https://gitlab.com/OpenLabAutomation/lab-automation-packages/pythonLab) |
65+
| Lab Orchestrator | [uulaborchestrator](https://pypi.org/project/uulaborchestrator/) | [laborchestrator](https://gitlab.com/OpenLabAutomation/lab-automation-packages/laborchestrator) |
66+
| Lab Scheduler | [uulabscheduler](https://pypi.org/project/uulabscheduler/) | [lab-scheduler](https://gitlab.com/OpenLabAutomation/lab-automation-packages/lab-scheduler) |

0 commit comments

Comments
 (0)