Public: anyone can read this; the crew can change it.
One sentence says which team a pull waits on: "Waiting on Design's review" #10092
Check · Review · Land · Live done — Landed and live in production.
A new pure function, `waitingOnTeams(names)` in `src/actions/teams_words.ts`, writes the sentence that says which teams a pull waits on. It returns `Waiting on Design's review` for one team, `Waiting on Design's and Data science's reviews` for two, and an empty string for none. The web merge box, the terminal and the API/MCP can all call it once #9930 shows team holds. The names stay plain text, a…
shipped production is serving it deploy a5a2512
A new pure function, waitingOnTeams(names) in src/actions/teams_words.ts, writes the sentence that says which teams a pull waits on. It returns Waiting on Design's review for one team, Waiting on Design's and Data science's reviews for two, and an empty string for none. The web merge box, the terminal and the API/MCP can all call it once #9930 shows team holds. The names stay plain text, and whatever displays them escapes them. Nothing calls it yet.
What to look at:
- Where it lives: the repository had no wording module for crew teams.
src/actions/team_words.tsis about organization teams, andtest/teams-language.test.tstests the Settings › Teams page. So the new file sits besidesrc/actions/teams.ts, following the other*_words.tsmodules. - Its test:
test/teams-words.test.tscovers zero, one and two teams, plus a check that names come back unescaped.
Left out:
- Three or more names: these get commas, then "and" before the last (the cap is two).
- Names ending in "s": they always get
's, with no special case. - MCP: no tool was added or changed.
- Plan tracking: the
keep_plantool was not available in this run, so the issue has no plan.
How to try it: bun test test/teams-words.test.ts. bun scripts/gate.ts, bun x tsc --noEmit and bun test test/teams-words.test.ts test/mcp-size.test.ts all pass.
🤖 Generated with Claude Code
A new pure function, waitingOnTeams(names) in src/core/teams_words.ts, writes the sentence that says which teams hold a pull. It returns Waiting on Design's review for one team, Waiting on Design's and Data science's reviews for two, and an empty string for none. The web merge box, the terminal and the API/MCP can all call it once #9930 shows team holds. The names stay plain text, and whatever displays them escapes them. Nothing calls it yet.
What to look at:
- Where it lives: the repository had no wording module for crew teams.
src/actions/team_words.tscovers organization teams, andtest/teams-language.test.tstests the Settings › Teams page. So the file sits insrc/core/next toteams.ts, likesubscriptions_words.ts. - Why it moved: the first push put it in
src/actions/, which the gate treats as a part people can reach on the preview. It then asked forTry:andWhy now:lines in a commit message. Nothing shows this sentence yet, so there is nothing honest to name on the preview, and the module now lives insrc/core/. Locally the gate passes only withFORGE_CHECK_BASEset to the base commit; without it, this clone found nomainto compare against and the gate passed without checking. - Its test:
test/teams-words.test.tscovers zero, one and two teams, plus a check that names come back unescaped.
Left out:
- Three or more names: these get commas, then "and" before the last (the cap is two).
- Names ending in "s": they always get
's, with no special case. - MCP: no tool was added or changed.
- Plan tracking: the
keep_plantool was not available in this run, so the issue has no plan.
How to try it: bun test test/teams-words.test.ts. FORGE_CHECK_BASE=9b12ece bun scripts/gate.ts, bun x tsc --noEmit and bun test test/teams-words.test.ts test/mcp-size.test.ts all pass.
🤖 Generated with Claude Code
Does what #10079 asks: a pure waitingOnTeams in src/core/teams_words.ts, tests for zero, one, two (plus three-name and unescaped cases), nothing renders it, no dependency, no UI so no preview surface to judge. Two things I would do next: (1) when #9930 wires it in, make callers drop blank names (an empty name now yields "Waiting on 's review"); (2) add a test for three names so the comma-and join is pinned (the code handles it, the test file does not cover it).
A new pure function,
waitingOnTeams(names)insrc/actions/teams_words.ts, writes the sentence that says which teams a pull waits on. It returnsWaiting on Design's reviewfor one team,Waiting on Design's and Data science's reviewsfor two, and an empty string for none. The web merge box, the terminal and the API/MCP can all call it once #9930 shows team holds. The names stay plain text, and whatever displays them escapes them. Nothing calls it yet.What to look at:
src/actions/team_words.tsis about organization teams, andtest/teams-language.test.tstests the Settings › Teams page. So the new file sits besidesrc/actions/teams.ts, following the other*_words.tsmodules.test/teams-words.test.tscovers zero, one and two teams, plus a check that names come back unescaped.Left out:
's, with no special case.keep_plantool was not available in this run, so the issue has no plan.How to try it:
bun test test/teams-words.test.ts.bun scripts/gate.ts,bun x tsc --noEmitandbun test test/teams-words.test.ts test/mcp-size.test.tsall pass.🤖 Generated with Claude Code
Closes #10079