Zespół developerski¶
Strona w przygotowaniu.
Krok 1 — Deklaracja (discipline.yaml)¶
Każde repozytorium aplikacji commituje discipline.yaml do korzenia:
app: nazwa-aplikacji
discipline: 1.0.0 # pinowana wersja dyscypliny
attest:
code-review-enforced: true # ręczne potwierdzenie procesów których CI nie może sprawdzić
discipline.yaml to deklaracja intencji zespołu. Wersja dyscypliny jest pinowana — aplikacja świadomie wybiera, którą wersją norm jest związana.
Krok 2 — Pomiar w CI (conformance.yml)¶
Repozytorium aplikacji includuje szablon CI z hub-a dyscypliny:
Na każdym MR i pushu pipeline:
- Pobiera normy dla pinowanej wersji dyscypliny.
- Uruchamia
bin/checks.shkażdej normy — sprawdza API GitLab, pliki, atestacje. - Produkuje
conformance.jsonjako artefakt CI (nie commit do repo):
{
"app": "nazwa-aplikacji",
"discipline": "1.0.0",
"checked": "2026-06-19",
"results": {
"proces/strategia-galezienia#default-branch-main": "pass",
"proces/conventional-commits#commit-format": "fail"
}
}
Krok 3 — Bramki środowiskowe¶
Wynik pomiaru steruje wdrożeniami. Każde środowisko wymaga, by wszystkie checki o odpowiednim tierze były pass lub przykryte ważnym waiverem:
| Środowisko | Wymagane tiery | Uwaga |
|---|---|---|
test |
test |
|
preprod |
test + preprod |
środowisko chronione |
prod |
test + preprod + prod |
brak otwartych waiversów |
Brama blokuje deploy, gdy choć jeden wymagany check ma status fail bez ważnego waivera.
Wyjątki — waivery¶
Każda niezgodność musi być naprawiona albo objęta jawnym, terminowym waiverem w discipline.yaml:
exceptions:
- check: proces/conventional-commits#commit-format
reason: "brak commitlint w CI — planowane w Q3 2026"
owner: maciej
max-env: preprod # waiver ważny do preprod; prod nadal blokuje
expires: 2026-09-30
ticket: PROJ-123
Zasady:
- Waiver bez
expiresjest niedozwolony. max-env: preprodprzepuszcza preprod, ale blokuje prod.- Wygasły waiver = traktowany jak brak waivera =
fail. - Brak cichych luk — każdy dług jest jawny i terminowy.
Konwencje¶
- Numeracja norm:
STD-<DOMENA>-NNN(domeny:PROC,SEC,INFRA,QUAL) - Semver dyscypliny: patch = transparentny · minor = nowy wymóg · major = łamiące
- Język zgodności: BCP 14 — MUSI / POWINIEN / MOŻE — patrz glossary.md
- Każda norma:
standards/<domena>/STD-<DOMENA>-NNN/README.md+bin/checks.sh - Deklaracja = commitowana (
discipline.yaml), pomiar = artefakt CI (conformance.json) — nie mieszaj
Wydania dyscypliny¶
Wersje są tagowane i generowane przez semantic-release na podstawie commitów (STD-PROC-003). Sprawdź zakładkę Releases w GitLab lub CHANGELOG.md. Pinuj dokładną wersję w discipline.yaml każdej aplikacji.