I2844 — plan validate refuses a milestone whose GitHub title would be over 255 characters
Both engines' plan validate (lib/project.awk and plan.rs) refuse a milestone whose projected GitHub title, \"<id> — <title>\" as scripts/github-sync title_of writes it, is over 255 characters, counted in characters rather than bytes, and name the milestone and the projected length.
PŘIPRAVENO vlna 0 · p1 · profil implementation · bezpečné paralelně
Připraveno. Všechny závislosti jsou hotové, takže majordomus plan start I2844 bude přijato.
Cíl
Both engines' plan validate (lib/project.awk and plan.rs) refuse a milestone whose projected GitHub title, \"<id> — <title>\" as scripts/github-sync title_of writes it, is over 255 characters, counted in characters rather than bytes, and name the milestone and the projected length.
Proč
On 2026-10-20 master 82ac259d0ae's github-projection went red (run 39392245555, exit 13): 1 of 368 mutations failed, POST milestones answering HTTP 422, because a-prompt-reaches-the-work-it-serves projected to 282 characters. That left the release top's (#1434) structure job unclearable from a branch. The title itself was shortened in the release top; nothing stopped the next one.
Aktuální stav
No check bounds a milestone title. The first sign of an over-long one is the GitHub API refusing it during the projection on master.
Cílový stav
plan validate fails with milestone_title_too_long, naming the milestone and its projected character count, for any milestone over 255 projected characters, in the shell engine and the executable alike. A title exactly at the limit passes, and multi-byte characters count once.
Rozsah
- lib/project.awk
- apps/majordomus-cli/src/plan.rs
- test/cases/3244_a_milestone_title_fits_on_github.sh
- .ai/repo/project/issues/I2844.yaml
Mimo rozsah
- Shortening any milestone title (done in the release top #1434)
- Issue titles, whose GitHub limit is a separate question
Závislosti
Žádné. Tento úkol je kořenem grafu.
Kritéria přijetí
- A milestone projecting to 256 characters fails plan validate in both engines with milestone_title_too_long naming the milestone and 256
- A milestone projecting to exactly 255 characters, one of them multi-byte, passes
- Case 3244 fails on master's lib/project.awk
Validace
- bin/majordomus plan validate
- bash test/run.sh 3244_a_milestone_title_fits_on_github
- cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib plan::tests::a_milestone_title_github_would_refuse_is_refused
Požadované důkazy
- a_milestone_title_fits_on_github_case
Důkazy
Nic nezaznamenáno. Za každým tokenem výše musí stát příkaz nebo artefakt, než lze tento úkol dokončit; vyprávění se odmítá.
Časová osa
- zahájeno
- —
- ověřeno
- —
- dokončeno
- —
Tato tři pole, důkazy výše a stav závislostí jsou vše, z čeho se stav skládá. Neexistuje žádné pole stavu, které by s nimi mohlo být v rozporu.
Canonical record: .ai/repo/project/issues/I2844.yaml. Read it back with majordomus plan show I2844.