Skip to content

A card holding up another team's task says so and comes first - #549

Merged
jamescrosswell merged 6 commits into
mainfrom
feat/blocker-first
Oct 18, 2026
Merged

jamescrosswell merged 6 commits into
mainfrom
feat/blocker-first

Conversation

@a-team-app

@a-team-app a-team-app Bot commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

When a task waits on another team's work, or on another task of its own team, the card that would free it now says so and comes first.

  • In Work, that card shows ⛓ frees a-team #499 after its number (⛓ frees #540 on the same team), wherever it sits, and moves to the top of its column ahead of Priority. Selecting it puts the chain on the status bar: a-team #499 waits on this · then MentalDesk.Tui's release · then a-team's bump.
  • Each tab counts its tagged cards first, like tui ⛓1 ◇1 PR2. The tag follows the icon setting: a Nerd Font link glyph, or ⛓.
  • The held task is back under Questions, saying which link holds it and whose move it is: ⛓ waits on tui-style-guide#84 · in review, yours, then ⛓ waits on #535 · in review, yours. It still doesn't count as waiting on you.
  • Once the release is out, Dependabot's PR bumping the package the wait names comes into Review, tagged ⛓ frees #499, and Accept merges it. Other Dependabot PRs are unchanged.
  • In Overseer, that card's chip wears an amber ⚠ between its number and its age, as in ●81 ⚠6d, and its details give the chain. This shows even for a card Work doesn't list, like a task In progress that another task waits on. A card blocked for any reason (the blocked label, a wait on another repo, or an open blocking issue) wears ⊘ there, the Nerd Font's nf-oct-blocked, as in ●82 ⊘2d.
  • The Dev's next/claim and the Lead's lead-next take what some task waits on before anything else, whatever its Priority. Nobody's Priority changes.

Closes #540

Choices worth a look:

  • The held task now waits for the bump too. A task waiting on another repo's change frees itself once it's closed or released #543 freed a task as soon as the release shipped. To give the chain a "bump open, bump merged" stage, free now keeps the task held while Dependabot has a PR open whose title names the wait's package, and frees it once that PR merges or closes. With no bump open, it's freed as before, and the Dev upgrades the package itself.
  • The dispatcher puts that bump on the board In review if nobody has yet, the way it adopts upstream PRs, so Accept works with no new path. The Lead can still read it and comment as usual.
  • Columns sort by Priority under the tag. The criteria ask for "tagged, then Priority, then the existing order", so Pitches, Questions and Review now order by Priority as well, where before they kept the board's order.
  • "Whose move" comes from the card at that link, on whichever team's tab it's on: yours, the Dev's, the Lead's. Where no card stands for the link (a release, or a repo no team here works in), it uses what the board said: yours for a release, or the upstream item's state.
  • Teams are matched to repos through the team configs on this machine, so a chain through a repo no team here works in still shows on the held task, but there's no tab to tag.

🤖 Generated with Claude Code

a-team try a-team 549

a-team-app Bot and others added 2 commits October 17, 2026 23:36
`waiting` now reports, on each task held by another repo, the chain of links it
still waits on: the upstream issue (with its pitch, open tasks and their PRs),
the release that carries it, and Dependabot's bump bringing that release in.
Each link names the team working in its repo, read from the team configs on this
machine. Prerequisites in the same repo come back as `frees` on their own card.

Work tags the card at the link holding a task now with `⛓ frees <team> #<n>`,
sorts tagged cards first in their column, then by Priority, counts them on the
team's tab, and puts the rest of the chain on the status bar. The held task is
back under Questions, saying which link it waits on and whose move that is,
though it still isn't counted as waiting on you.

`free` keeps a released task held while Dependabot has a PR open bumping the
package its wait names, and puts that PR on the board In review so Accept merges
it. `next`, `claim` and `lead-next` take what some task waits on before any
other, whatever its Priority.

Closes #540

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…one call more

Closes #540

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@a-team-app

a-team-app Bot commented Oct 17, 2026

Copy link
Copy Markdown
Contributor Author

Needs changing

  • scripts/board.sh with_bumps: .title | contains($p) is a plain substring test, so a wait on MentalDesk.Tui also matches a Dependabot PR such as "Bump MentalDesk.Tui.Testing from …". free would then put that unrelated PR In review without the Lead's note, tag it ⛓ frees #n, and hold the task until it merges. Match the package as a whole word in the title, e.g. test("(^|[ ,])\($p)( |,|$)"; "i") with the dots escaped. That still catches grouped titles like Bump MentalDesk.Tui and Terminal.Gui #348's "Bump MentalDesk.Tui and Terminal.Gui".

Worth considering

  • with_bumps doesn't check that the bump reaches the release the wait needs. If Dependabot has a PR open to an older version (e.g. 0.3.7 when the fix shipped in 0.3.9), the task is held on it and the stakeholder is pointed at a bump that doesn't free anything. Comparing the "to " in the title with the release tag would close that gap.
  • With held tasks now under Questions, the tab's ? counts them (a-team ? 1 in the test), even though they ask nothing and are left out of "waiting on you". Leaving WaitsUpstream cards out of the tally would keep the tab in line with the Work title.
  • The criteria ask for a test of every link in every state. tests/scripts.sh covers an open issue, a merged PR, a released one with an open bump, and a met wait, but not a wait on an open upstream PR (the common depends … owner/repo#<pr> released case, whose refs come from .n alone). There's also no test that a bump brought into Review is flagged dependency and that Accept merges it.
  • next, claim and lead-next now call holding, which reads every other team's upstream-labelled issues and each one's comments on every call. That's fine at today's scale, but the cost grows with the number of teams and waits.

…word

A wait on MentalDesk.Tui no longer matches Dependabot's bump of MentalDesk.Tui.Testing.

Closes #540

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@a-team-app

a-team-app Bot commented Oct 17, 2026

Copy link
Copy Markdown
Contributor Author

Needs changing, fixed in 11a3e6a: with_bumps now splits the bump's title on spaces and commas and needs the wait's package as a whole word, so MentalDesk.Tui no longer matches "Bump MentalDesk.Tui.Testing from …", and grouped titles like "Bump MentalDesk.Tui and Terminal.Gui" still match. A test covers the lookalike package.

I've left the Worth considering points to you.

@a-team-app
a-team-app Bot marked this pull request as ready for review October 17, 2026 11:20
a-team-app Bot and others added 3 commits October 18, 2026 18:03
Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The chip wears ⚠ (nf-md-alert with a Nerd Font) between its number and its age, and its details give the chain, as on Work's status bar. Holds.Holders finds the card from the held task's chain, so the warning shows even where Work doesn't list the card.

Closes #540

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
The overview reports whether each card is blocked, by the same rule `next` uses: labelled blocked, waiting on another repo, or blocked by an open issue. The chip wears the mark between its number and its age, ⊘ without a Nerd Font, given two cells with one as its glyph is drawn that wide, as the warning now is too.

Closes #540

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@jamescrosswell
jamescrosswell merged commit 06fd4b9 into main Oct 18, 2026
7 checks passed
@jamescrosswell
jamescrosswell deleted the feat/blocker-first branch October 18, 2026 10:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

A card holding up another team's task says so and comes first

1 participant