# Contributing — mgf-cloud-web

`mgf-cloud-web` is a Magogi Foundation sibling and **inherits the cross-project
engineering standards** from
[`mgf-common`](https://codeberg.org/magogi-admin/mgf-common). This file is short
on purpose; the canonical contributor guide is the federation contract.

## First read

1. [FEDERATION.md](FEDERATION.md) — the contract.
2. [SCOPE.md](SCOPE.md) — what belongs in this app (it is a **thin consumer** of
   `mgf-cloud`; provider logic does NOT belong here).
3. [mgf-standard/docs/standards/](https://codeberg.org/magogi-admin/mgf-standard/src/branch/main/docs/standards/) — the rule corpus.

## Process

1. **Bug / feature:** file in [FEEDBACK.md](FEEDBACK.md) (app-scoped) — or in
   [mgf-cloud/FEEDBACK.md](https://codeberg.org/magogi-admin/mgf-cloud/src/branch/main/FEEDBACK.md)
   for a cloud-capability request, or
   [mgf-common/FEEDBACK.md](https://codeberg.org/magogi-admin/mgf-common/src/branch/main/FEEDBACK.md)
   if cross-cutting (per DOC-13 / FB-04).
2. **PR:** branch from main; run the four gates + the standards gate locally:
   ```sh
   uv run --extra dev ruff check . && uv run --extra dev ruff format --check .
   uv run --extra dev mypy
   uv run --extra dev lint-imports
   uv run --extra dev pytest --cov --cov-report=term-missing
   mgf-fed app-doctor --standards
   ```
3. **CHANGELOG.md:** add an `[Unreleased]` entry per
   [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
4. **Brand changes:** reusable Magogi styling lives in the shared
   [`mgf-brand-web`](https://codeberg.org/magogi-admin/mgf-brand-web) package
   (mounted here at `/static/brand`) — change it there, not in this repo. Only
   app-specific styling belongs here, in `web/static/app.css`.
5. **CI is generated:** never hand-edit `.woodpecker.yml`; regenerate with
   `mgf-fed scaffold mgf-cloud-web` (WF-13), and keep it current —
   `mgf-fed drift-check` enforces it.
6. **Reviewer:** the federation owner (mgf-common maintainer).

## Release flow

See [REL-* in the standards](https://codeberg.org/magogi-admin/mgf-standard/src/branch/main/docs/standards/RELEASING.md).
Short version: bump `pyproject.toml::version` + `mgf.cloud_web.__version__` → build
→ test → `twine check` → commit → tag `vX.Y.Z` → push tag (CI publishes to devpi)
→ regenerate the registry (`mgf-standard/scripts/gen_mgf_libraries.py`, REL-13).

## See also

- [STARTHERE.md](STARTHERE.md) — entry point
- [FEDERATION.md](FEDERATION.md) — the federation contract
- [mgf-common/CONTRIBUTING.md](https://codeberg.org/magogi-admin/mgf-common/src/branch/main/CONTRIBUTING.md) — the canonical contributor guide
