Metadata-Version: 2.5
Name: mgf-fed
Version: 0.25.7
Summary: Magogi Foundation federation orchestrator — runs the recurring cross-repo work (gates, local/remote release, status) consistently and trackably over the mgf-* fleet.
Project-URL: Homepage, https://codeberg.org/magogi-admin/mgf-fed
Project-URL: Issues, https://codeberg.org/magogi-admin/mgf-fed/issues
Author: mgf-fed contributors
License: Apache-2.0
License-File: LICENSE
License-File: NOTICE
Requires-Python: >=3.11
Provides-Extra: cli
Requires-Dist: mgf-common<1.0,>=0.50; extra == 'cli'
Requires-Dist: mgf-logship<0.2,>=0.1.6; extra == 'cli'
Requires-Dist: mgf-standard<0.2,>=0.1.75; extra == 'cli'
Requires-Dist: mgf-test-supervisor<0.2,>=0.1; extra == 'cli'
Provides-Extra: cloud
Requires-Dist: mgf-cloud[infomaniak]<0.2,>=0.1; extra == 'cloud'
Provides-Extra: dev
Requires-Dist: import-linter>=2; extra == 'dev'
Requires-Dist: mgf-test-supervisor<0.2,>=0.1.2; extra == 'dev'
Requires-Dist: mypy>=1.8; extra == 'dev'
Requires-Dist: pytest-cov>=5; extra == 'dev'
Requires-Dist: pytest-timeout<3,>=2.3; extra == 'dev'
Requires-Dist: pytest>=8.0; extra == 'dev'
Requires-Dist: ruff<0.16,>=0.4; extra == 'dev'
Requires-Dist: types-pyyaml; extra == 'dev'
Requires-Dist: uv>=0.4; extra == 'dev'
Provides-Extra: standards
Requires-Dist: mgf-common<1.0,>=0.50; extra == 'standards'
Requires-Dist: mgf-logship<0.2,>=0.1.6; extra == 'standards'
Requires-Dist: mgf-standard<0.2,>=0.1.75; extra == 'standards'
Requires-Dist: mgf-test-supervisor<0.2,>=0.1; extra == 'standards'
Provides-Extra: supervisor
Requires-Dist: mgf-test-supervisor<0.2,>=0.1; extra == 'supervisor'
Description-Content-Type: text/markdown

# mgf-fed — Magogi Foundation federation orchestrator

> **Conformance: L2** (target) — per-rule ledger:
> [`docs/inprogress/MGF_STANDARDS_CONFORMANCE.md`](docs/inprogress/MGF_STANDARDS_CONFORMANCE.md).

Runs the recurring cross-repo work — quality gates, local/remote release, status,
drift, provisioning — **consistently, controllably, and trackably** across the
`mgf-*` fleet, in dependency-wave order. It *composes* existing assets rather than
reinventing them:

| Concern | Reused asset |
|---|---|
| release/build **order** | `mgf-standard` registry (`MGF_LIBRARIES.json` → `release_waves`) |
| gate/test **runner** | `mgf-test-supervisor` (`mtest`) |
| **local CI** | `woodpecker-cli exec` (the real `.woodpecker` pipeline, in containers) |
| **SCM/release** flow | `tea` + `git`, with the federation guardrails baked in |

Plan & rationale: see `mgf-standard/docs/inprogress/federation-automation-and-release-plan.md`.

## Shape

mgf-fed is a **zero-runtime-dependency orchestrator core** (`mgf.fed`) plus, under
the optional **`[cli]` extra**, the merged end-user/governance command surface
extracted from `mgf-common` in Wave 3. The core runs identically whether or not
`[cli]` is installed.

```bash
pip install mgf-fed          # the zero-dep orchestrator core
pip install 'mgf-fed[cli]'   # + the governance front-door (doctor/explain/bundle/…)
```

## Native fleet verbs

```bash
mgf-fed status              # the federation matrix (version, conformance %, scaffolding)
mgf-fed status --json       # machine-readable -> ~/.mgf/MGF_FED_STATUS.json
mgf-fed gates               # run the quality gates across the fleet, wave-ordered
mgf-fed local-ci            # run the real .woodpecker pipeline locally (woodpecker-cli exec)
mgf-fed release-local       # Phase A: build + validate the wheel
mgf-fed release-remote      # Phase B: tag + publish to devpi + index-verify, wave-ordered
mgf-fed scaffold            # render repo artifacts from the canonical templates
mgf-fed drift-check         # report template/registry drift (never silently edits)
mgf-fed registry --check    # the REL-13 federation consistency + currency gate
mgf-fed provision-ci-host   # DEPRECATED shim -> `mgf-cloud-provision ci-host`
```

Set `MGF_ROOT` if the sibling repos aren't under `~/PycharmProjects`. Central log
shipping activates when `MGF_LOGSHIP_URL` + `MGF_LOGSHIP_INGEST_TOKEN` are set
(`[cli]` extra) — every invocation's records then reach openobserve-prod
(`app="mgf-fed"`).

## Governance front-door (`[cli]` extra)

```bash
mgf-fed version            # rich version + git SHA + Python/platform + dep versions
mgf-fed app-doctor         # install-state + wiring health (--standards for the code audit)
mgf-fed explain            # the resolved settings, with per-field provenance
mgf-fed logs               # locate / tail / follow an app's rotating-file JSON logs
mgf-fed bundle             # one redacted diagnostic tarball for a bug report
mgf-fed hooks              # session-hook kit: install/status/uninstall/emit/log
mgf-fed validate / migrate / catch-up / standards / agents / start / feedback-howto …
```

### Session hooks (observe mode)

`mgf-fed hooks install` merges a **one-line** shim into a repo's
`.claude/settings.json` — nothing is copied into the repo. At every session start it
re-teaches the seat protocol (`SEATS.md` SEAT-02) and appends to an audit trail at
`.claude/state/agent-events.jsonl`. It **prints and records; it never blocks**, and
it never declares the seat on the agent's behalf. The stop-time gate ships
**disabled** behind `MGF_HOOKS_GATE`. Full boundary + kill-switch:
[`docs/howto/session-hooks.md`](docs/howto/session-hooks.md).
