Ustalenie
.claude/agents/ci-engineer.md mowi:
Branch protection requires each lint job by name, so the workflow cannot
use a top-level paths-ignore
Zmierzone dzis, 2026-09-01:
$ gh api repos/msgwing/ZeroSMTP/branches/main/protection \
--jq '.required_status_checks.contexts'
["bash","csharp","go","java","kotlin","node-and-typescript","php",
"powershell","python","ruby","rust"]
Jedenascie zadan, wszystkie to lintery przykladow w jezykach. Zadna z bramek
tego projektu nie jest wymagana. Nie sa wymagane miedzy innymi:
| zadanie |
co w nim stoi |
device-table |
check-facts.py, check-control-chars.py, check-action.py, check-mcp-server.py, check-workflows.py i dziewiec generatorow z --check |
jekyll-build |
budowa strony - dodana 2026-08-30 wlasnie po to, zeby zepsuty Liquid nie trafil na produkcje |
mcp-container |
zbudowanie obrazu i handshake MCP, dodane wczoraj w #405 |
zerosmtp-check, zerosmtp-mcp |
testy obu pakietow npm |
unanswered-external |
bramka z #383 na cisze wobec czlowieka z zewnatrz |
Dowod, ze to nie jest teoretyczne
--auto scala, gdy przejda kontrole wymagane. Czerwona kontrola
niewymagana nie zatrzymuje niczego. Sprawdzone na 40 ostatnich scalonych PR-ach:
for n in $(gh pr list --state merged --limit 40 --json number -q '.[].number'); do
gh pr view $n --json statusCheckRollup \
-q '[.statusCheckRollup[]?|select(.conclusion=="FAILURE")|.name]|join(",")'
done
PR #342 merged with RED: submit-nuget
PR #334 merged with RED: submit-nuget
Dwa PR-y weszly na main z czerwona kontrola. Gdyby czerwony byl
device-table, weszlyby tak samo.
To jest tlo dla dzisiejszego pytania wlasciciela o komitet od zmian: sciezka
scalania nazywa sie "kontrole i nic wiecej", a kontrolami sa lintery
przykladow, nie bramki, ktore ten zespol zbudowal.
Co z tym zrobic
Dopisac do required_status_checks.contexts te zadania, ktore raportuja przy
kazdym zdarzeniu. device-table i jekyll-build nie maja if: i biegna
zawsze - te sa bezpieczne od reki. Reszta ma if: needs.changes.outputs.code,
a pominiete zadanie raportuje status skipped, ktory spelnia wymagana
kontrole (to juz stoi w ci-engineer.md i zostalo tam sprawdzone).
Ostrzezenie z tego samego pliku obowiazuje: wymagana kontrola o nazwie,
ktorej nikt nie raportuje, blokuje kazdy przyszly PR na zawsze. Nazwy biore
sie z gh pr view <n> --json statusCheckRollup, nie z pamieci, i po zmianie
odczytuje sie contexts z powrotem - odpowiedz 200 nie jest dowodem
(mechanika 8).
Jesli token sesji nie ma uprawnien do PATCH .../branches/main/protection,
to jest to ustawienie repozytorium i wtedy wraca jako osobne do-akceptacji -
ale najpierw trzeba sprobowac i zobaczyc odpowiedz, a nie zalozyc.
Rola: ci-engineer. Poprawic tez zdanie w ci-engineer.md, ktore dzis mowi
nieprawde.
Ustalenie
.claude/agents/ci-engineer.mdmowi:Zmierzone dzis, 2026-09-01:
Jedenascie zadan, wszystkie to lintery przykladow w jezykach. Zadna z bramek
tego projektu nie jest wymagana. Nie sa wymagane miedzy innymi:
device-tablecheck-facts.py,check-control-chars.py,check-action.py,check-mcp-server.py,check-workflows.pyi dziewiec generatorow z--checkjekyll-buildmcp-containerzerosmtp-check,zerosmtp-mcpunanswered-externalDowod, ze to nie jest teoretyczne
--autoscala, gdy przejda kontrole wymagane. Czerwona kontrolaniewymagana nie zatrzymuje niczego. Sprawdzone na 40 ostatnich scalonych PR-ach:
Dwa PR-y weszly na
mainz czerwona kontrola. Gdyby czerwony byldevice-table, weszlyby tak samo.To jest tlo dla dzisiejszego pytania wlasciciela o komitet od zmian: sciezka
scalania nazywa sie "kontrole i nic wiecej", a kontrolami sa lintery
przykladow, nie bramki, ktore ten zespol zbudowal.
Co z tym zrobic
Dopisac do
required_status_checks.contextste zadania, ktore raportuja przykazdym zdarzeniu.
device-tableijekyll-buildnie majaif:i biegnazawsze - te sa bezpieczne od reki. Reszta ma
if: needs.changes.outputs.code,a pominiete zadanie raportuje status
skipped, ktory spelnia wymaganakontrole (to juz stoi w
ci-engineer.mdi zostalo tam sprawdzone).Ostrzezenie z tego samego pliku obowiazuje: wymagana kontrola o nazwie,
ktorej nikt nie raportuje, blokuje kazdy przyszly PR na zawsze. Nazwy biore
sie z
gh pr view <n> --json statusCheckRollup, nie z pamieci, i po zmianieodczytuje sie
contextsz powrotem - odpowiedz 200 nie jest dowodem(mechanika 8).
Jesli token sesji nie ma uprawnien do
PATCH .../branches/main/protection,to jest to ustawienie repozytorium i wtedy wraca jako osobne
do-akceptacji-ale najpierw trzeba sprobowac i zobaczyc odpowiedz, a nie zalozyc.
Rola:
ci-engineer. Poprawic tez zdanie wci-engineer.md, ktore dzis mowinieprawde.