Found while landing #2372 (the augur lexicon, #2357). A new lexicon directory is not enough for CI to build it: the prepack invocations are hand-written lists, one line per lexicon, and there are four of them:
.github/workflows/chant.yml check job (~line 58-73)
.github/workflows/chant.yml test job (~line 195-210)
.github/workflows/chant.yml lexicon-artifacts job (~line 289-343, one named step per lexicon)
.github/workflows/publish.yml (~line 72-88)
augur was in none of them, so dist/meta.json never existed on CI and test/lexicon-artifacts.setup.ts:14 refused to start vitest, while tsconfig.json's per-lexicon paths (also hand-written, also missing augur) failed the check job with TS2307. Locally both resolved through the workspace symlink, which is exactly why the author's own gates passed.
Everything else that enumerates lexicons is already dynamic: scripts/check-lexicons.ts, just _ensure-gen/regen, the vitest.config.ts globs, build-docs.sh, test/lexicon-artifacts.ts, publish-packages.sh.
Ask
Either generate the four lists (and the tsconfig.json paths pairs) from ls lexicons/, or add a guard test in the shape of scripts/lexicon-count-claims.test.ts (#2339) that fails when a directory under lexicons/ is absent from any of the five. The guard is the smaller change and catches the next one the day it's added; #2372 added augur by hand to all five.
Found while landing #2372 (the
augurlexicon, #2357). A new lexicon directory is not enough for CI to build it: theprepackinvocations are hand-written lists, one line per lexicon, and there are four of them:.github/workflows/chant.ymlcheckjob (~line 58-73).github/workflows/chant.ymltestjob (~line 195-210).github/workflows/chant.ymllexicon-artifactsjob (~line 289-343, one named step per lexicon).github/workflows/publish.yml(~line 72-88)augur was in none of them, so
dist/meta.jsonnever existed on CI andtest/lexicon-artifacts.setup.ts:14refused to start vitest, whiletsconfig.json's per-lexiconpaths(also hand-written, also missing augur) failed thecheckjob withTS2307. Locally both resolved through the workspace symlink, which is exactly why the author's own gates passed.Everything else that enumerates lexicons is already dynamic:
scripts/check-lexicons.ts,just _ensure-gen/regen, thevitest.config.tsglobs,build-docs.sh,test/lexicon-artifacts.ts,publish-packages.sh.Ask
Either generate the four lists (and the
tsconfig.jsonpathspairs) fromls lexicons/, or add a guard test in the shape ofscripts/lexicon-count-claims.test.ts(#2339) that fails when a directory underlexicons/is absent from any of the five. The guard is the smaller change and catches the next one the day it's added; #2372 added augur by hand to all five.