Repository navigation
Factory CI: a Lint job runs upstream's lint and format checks - #64
Merged
Merged
Conversation
tomkaczocha
marked this pull request as ready for review
October 16, 2026 08:15
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #56
Contract
.github/workflows/factory-ci.ymlgains a second joblint(nameLint) with the same checkout (sparse, no.repos/), the same Setup Vite+ andvp isteps ascheck, thenvp check, the command upstream'sci.ymlLint job runs. Thecheckjob andfactory/scripts/check.share unchanged; the gate in.dw/config.ymlis unchanged.factory/README.md"Checks" says CI runsLintbesidecheck.shand that the gate does not run it.knip:check,ensure:electron, the PR-assets step, makingLinta required check (Wait for a repo's required CI checks before marking a pull request ready #26), gate changes,factory/SEAMS, upstream files.actionlint .github/workflows/factory-ci.yml(exit 0) and byvp checkrun locally on the branch's tree, see below.Acceptance criteria
lint(nameLint), same checkout and Vite+ setup ascheck, thenvp check—.github/workflows/factory-ci.yml:46-71; steps 1 to 3 are byte-identical to thecheckjob's.checkjob,check.shand the gate unchanged — the diff touches only lines 46-71 of the workflow and one paragraph of the README;factory/scripts/check.shand.dw/config.ymlare not in the diff.apps/server/src/factory/,Lintfails andCheckpasses; onmain,Lintpasses; the PR body links both runs — cannot be produced yet: GitHub Actions is disabled for this repository (gh api repos/original-solutions/t3code-factory/actions/permissions→"enabled": false;gh run listshows no run of any workflow, ever). Verified locally on the branch's tree instead:vp check→ exit 0 (pass: All 5724 files are correctly formatted,Found 0 errors and 954 warnings); warnings do not fail it.// oxlint-disable-next-line eslint/no-unused-varsand no reason appended toapps/server/src/factory/text.ts:vp check→ exit 1 (x t3code(require-suppression-reason)attext.ts:28), whilevp run --filter t3 typecheck→ exit 0. The Check job's other steps do not read that line.import { sep } from "node:path"is not a usable demo:vp checkfails on it, but so does the server typecheck (effect(nodeBuiltinImport)), soCheckwould fail too.vp checkfindings onmainto fix —vp checkexits 0 on themaintree, so no fork or upstream file needed a change.Lintbesidecheck.shand says the gate does not run it —factory/README.md:22.Needs info
Actions is off at the repository level, so neither the
Lintdemonstration run nor aLintrun onmaincan exist until a person turns it on.factory/docs/design.md("Actions are off for the whole repo") says the same step should disable every upstream workflow first, so upstream'sci.ymland its Blacksmith-runner jobs do not fire on every push. Questions:original-solutions/t3code-factory(and disable the upstream workflows as design.md says), so this run can produce the two runs and link them here?Gate
vp test run apps/server/src/factory→ exit 0 (33 files, 1129 tests)vp run --filter t3 typecheck→ exit 0Models
modelsblock in.dw/config.yml; roster default)Review
3480eb91f): Approve, no findings. No testing persona: the diff holds no tests and no runtime code, and the only behaviour (vp check's exit code) was exercised directly as described above.vp checkexit-code checks above stand in for it.Isolate
origin/mainwith a clean tree; fast-forwardede4bcce9f6→ff23fa2fdbefore provisioning.factory:*labels already existed; none created.vp i→ exit 0.Lessons
gh workflow listdoes not show (every workflow readsactive); onlygh api repos/<owner/repo>/actions/permissionsand an emptygh run listdo. Default: when an acceptance criterion names a workflow run or a check, query those two at Contract, and when Actions is off, build the change, open the draft, and stopneeds-infowith the questions in the same message, rather than discovering it at Ship.Commits
3480eb91fci(factory): a Lint job runs vp check beside Check— Make slice (no red phase: CI config)Files
.github/workflows/factory-ci.yml— newlintjob (Lint): checkout, Setup Vite+,vp i,vp check;checkjob untouchedfactory/README.md— "Checks" names theCheckjob and theLintjob and says the gate does not runLint