Development
Everything you need to contribute back to F1 StratLab: the docs pipeline that publishes this site, the CI/CD workflows that release the wheel, and the conventions the project follows on every commit and pull request.
Workflows
The three workflow guides below cover the entire development lifecycle:
- Documentation maintenance, how the React SPA under
docs/is previewed locally and published to GitHub Pages. Covers thedocs.ymlworkflow: staging to_site, prerendering pages withnode scripts/prerender_docs.mjs, injecting the release version, and publishing viapeaceiris/actions-gh-pages. - CI/CD pipeline, every GitHub Action that runs on push and tag: lint, tests, wheel build,
release-pleaseautomation, and the docs publish job. - CONTRIBUTING.md: PR conventions, branch naming, and where to start when you want to add a sub-agent or extend a notebook.
Conventional Commits cheat sheet
The repo uses Conventional Commits so release-please can derive the next semver from the log. Stick to the table below and your PR title is enough to drive the changelog.
| Prefix | When to use | Bumps |
|---|---|---|
feat: |
Adds new user-facing capability | minor |
fix: |
Fixes a bug observable by users | patch |
docs: |
Documentation only | none |
style: |
Formatting, whitespace, no logic change | none |
refactor: |
Internal restructure with no behaviour change | none |
perf: |
Performance improvement | patch |
test: |
Tests only | none |
build: |
Build system or dependencies | none |
ci: |
CI configuration | none |
chore: |
Routine maintenance | none |
BREAKING CHANGE: |
Footer or ! suffix on the type |
major |
Examples:
feat(arcade): add 2x2 telemetry window with delta chart
fix(agents): clamp tire-age input to non-negative integers
refactor(strategy)!: swap StrategyState schema to 14 frozen fields
docs(architecture): add sequence diagram for orchestrator loop
The release commit is generated by release-please and looks like chore(main): release 1.1.1. Do not hand-author those, let the bot do it.
Branch naming
Match the prefix you would use in the commit:
feat/<short-slug>, feature workfix/<short-slug>, bug fixesdocs/<short-slug>, documentationchore/<short-slug>, maintenance and toolingrelease-please--branches--main--components--f1-strat-manager, managed by the bot
Pull requests target dev, not main. main is release-only: it is protected, and release-please tags from it. Work flows feature branch -> dev -> main, and only a promotion PR opens against main.
The required checks are test, lint and typecheck. All three must pass before a merge.
Two more references worth bookmarking. The repo root carries CONTRIBUTING.md with the canonical contribution flow. For a code-level map of every module, open the F1 StratLab DeepWiki. It auto-regenerates on every push.