Přeskočit na obsah

Tato stránka byla automaticky přeložena z angličtiny, jediného jazyka, ve kterém se tento web píše. Číst originál.

I3971 — Work in an open pull request or under a live branch claim is reported taken and is never the next issue

The one next-issue function I3754 builds (plan.rs ranking, then delivery at the trunk) gains a second, observed pass: a READY candidate whose delivery stage is pr_open (plan/delivery.rs, from the recorded forge observation) or branch with a live claim on the mesh board (read from mesh/state.rs) is passed over as taken and listed with the pull request or claim that put it there and the time of that observation. Taken is a readiness refinement inside READY (devtask/readiness.rs TaskReadiness::Taken), neither a seventh canonical status nor TaskReadiness::Review, which already means VERIFY (readiness.rs:25-27): ISSUE_STATUSES and lib/project.awk stay byte-equal, and readiness.rs's note that no record field can distinguish such a word is amended to say that delivery, an observation, now does. plan next, plan ready and plan.status's next_ready answer the same. The shell's plan next (mj_pj_next_ready, lib/plan.sh:230, 262, 337) cannot read the forge cache or the board, so it asks the executable for the observed pass, and when the executable is absent answers the stamps-only pick labelled as such. plan next --at <rev> keeps I3754's answer that depends on the commit alone.

BLOKOVÁNO vlna 4 · p0 · profil implementation · běží samostatně

Part of merging-and-referencing-are-enforced — Merging and referencing are enforced: every pull request carries its metadata, every reference resolves, every number is taken once.

Blocked. This issue cannot start until I3754 is done. The status is derived from that, not declared.

Cíl

The one next-issue function I3754 builds (plan.rs ranking, then delivery at the trunk) gains a second, observed pass: a READY candidate whose delivery stage is pr_open (plan/delivery.rs, from the recorded forge observation) or branch with a live claim on the mesh board (read from mesh/state.rs) is passed over as taken and listed with the pull request or claim that put it there and the time of that observation. Taken is a readiness refinement inside READY (devtask/readiness.rs TaskReadiness::Taken), neither a seventh canonical status nor TaskReadiness::Review, which already means VERIFY (readiness.rs:25-27): ISSUE_STATUSES and lib/project.awk stay byte-equal, and readiness.rs's note that no record field can distinguish such a word is amended to say that delivery, an observation, now does. plan next, plan ready and plan.status's next_ready answer the same. The shell's plan next (mj_pj_next_ready, lib/plan.sh:230, 262, 337) cannot read the forge cache or the board, so it asks the executable for the observed pass, and when the executable is absent answers the stamps-only pick labelled as such. plan next --at <rev> keeps I3754's answer that depends on the commit alone.

Proč

Sessions on 2026-10-22 were handed issues whose work was already in an open pull request (I3910 and I3916 were each announced taken while plan next still offered them), so two workers started the same work; the plan reads only stamps, and delivery, which knows of the pull request, is not consulted.

Aktuální stav

Verified at 355a0cee79a: plan.rs:567-580 ranks READY issues by wave, priority and id; plan/delivery.rs derives pr_open from the forge cache (delivery.rs:487-529); devtask/readiness.rs:32 states there is no in_review; ISSUE_STATUSES is plan.rs:51, held to lib/project.awk by case 99_plan_capabilities. I3754 (one next function reading delivery at the trunk only) is BLOCKED and not started.

Cílový stav

plan next never names an issue with an open pull request or a live branch claim; plan ready lists it as taken with its evidence; the canonical six statuses are unchanged.

Rozsah

  • apps/majordomus-cli/src/plan.rs
  • apps/majordomus-cli/src/plan/delivery.rs
  • apps/majordomus-cli/src/devtask/readiness.rs
  • apps/majordomus-cli/src/capability/builtin/plan.rs
  • lib/plan.sh
  • lib/project.sh
  • apps/majordomus-cli/src/mesh/state.rs
  • apps/majordomus-cli/tests/plan_delivery.rs
  • test/cases/99_plan_capabilities.sh
  • .ai/repo/project/issues/I3971.yaml

Mimo rozsah

  • A new canonical issue status
  • Writing any stamp from an observation; the record stays the person's or the lifecycle's

Závislosti

Kritéria přijetí

  • With a forge fixture holding an open pull request naming the top READY issue, plan next answers the second and lists the first as taken with the pull request number and the observation time (case work_in_an_open_pull_request_is_not_next)
  • A live branch claim on the board passes an issue over the same way; an expired claim does not
  • The shell's plan next answers the same through the executable, and labels a stamps-only answer when the executable is absent
  • plan next --at <rev> answers from the commit alone, as I3754 defines
  • ISSUE_STATUSES and lib/project.awk are unchanged and case 99_plan_capabilities passes

Validace

  • bin/majordomus plan validate
  • env -u MAJORDOMUS_SHARE cargo test --manifest-path apps/majordomus-cli/Cargo.toml --lib -- plan::
  • env -u MAJORDOMUS_SHARE cargo test --manifest-path apps/majordomus-cli/Cargo.toml --test plan_delivery
  • env -u MAJORDOMUS_SHARE bash test/run.sh 99_plan_capabilities

Požadované důkazy

  • work_in_review_is_not_next

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/I3971.yaml. Read it back with majordomus plan show I3971.

Prohledává názvy a popisy všech stránek, které tento web publikuje.