Repository navigation
chore: apply repo standards (merge commits, TS7, vscode config) - #18
Merged
Merged
Conversation
Remove incremental/tsBuildInfoFile/composite/references from all tsconfigs, replace root `tsc -b` with a per-package `tsc` run in topological order, and drop the src path aliases that only worked under project references (packages now resolve each other through built workspace dist output). Closes #14
bhouston
added a commit
that referenced
this pull request
Sep 25, 2026
## Summary Stage 1 of the org-wide v2 repo standard: tooling, hooks, CI, and release workflow. - `engines.node` → `>=22` (root + `three-ntc` + `three-ntc-trainer`); `packageManager` was already `pnpm@11.27.0` from #35 - `pnpm-workspace.yaml`: `minimumReleaseAgeExclude` entries use package names, not `name@version` (`three`, `@tanstack/charts`) - Canonical `.oxfmtrc.json` (repo's `routeTree.gen.ts` exclusion is already covered by the canonical `**/*.gen.ts` pattern) - Canonical `.oxlintrc.json` base: turned `eslint/no-unused-private-class-members` and `unicorn/no-new-array` to `error` now (produce zero errors); kept `typescript/no-explicit-any` off — enabling it currently errors on ~60 call sites, deferred to stage 3 per the standard - Canonical `commitlint.config.js` (explicit `type-enum`) - Canonical `scripts/check-pr.mjs` + `.github/workflows/pr-policy.yml` — job renamed to `contribution` (branch protection requires this exact name); commitlint title/range checks now run as pr-policy steps instead of being invoked from inside check-pr.mjs - `.github/workflows/ci.yml` — job renamed to `ci` (branch protection requires this exact name), canonical concurrency group, added format-check (`oxfmt --check`) and Codecov steps, kept this repo's dist-verification, release:check, bundle-size, and blocking-prod/advisory-dev audit steps. The `skip-gpu` workflow_call input now defaults to `true` (canonical `release.yml` calls `ci.yml` with no inputs, so the default has to keep skipping GPU there — matches current behavior where release.yml explicitly passed `skip-gpu: true`) - `.github/workflows/release.yml` — byte-identical canonical file `lint-staged`, `.husky/pre-commit`, `.husky/commit-msg`, and `CONTRIBUTING.md` were already canonical from #35, no changes needed. ## Deliberate deviation to flag The previous `release.yml` had a repo-specific "Restore generated changelog from the previous release" step (downloads the prior release's `CHANGELOG.md` before `@semantic-release/changelog` runs, since root `CHANGELOG.md` isn't committed to git). The v2 standard calls for `release.yml` to be byte-identical to the canonical file, which doesn't have this step. I copied it byte-for-byte per the standard, but **this means the next release's `CHANGELOG.md` will start fresh instead of appending to history** unless that behavior is restored some other way (e.g. committing CHANGELOG.md, or a different mechanism). Flagging for the maintainer's decision — did not add a workaround since the standard is explicit about byte-identical here. ## Validation (in worktree) - `pnpm install` — lockfile unchanged - `pnpm build` — pass - `pnpm tsc` — pass - `pnpm lint` — pass (warnings only, no errors) - `pnpm exec oxfmt --check .` — pass - `pnpm test` — 18 test files / 61 tests passed - `pnpm release:check` — 9/9 passed - `pnpm size` — within budget (three-ntc 9168B/11000B, three-ntc-trainer 44820B/52000B) - `node .../standards/check-drift.mjs <worktree>` — clean except the documented `.oxlintrc.json` `no-explicit-any` exception above ## Note There's a stale, conflicting open PR #18 (`chore/13-repo-standards`) from an earlier session touching overlapping files — left untouched per instructions. Closes #36
Keep main's vscode config, CONTRIBUTING, TypeScript 7.1 and vitest 5; drop composite/references from the remaining tsconfigs (incl. playground) and check every package with its own tsc.
|
Codecov Report✅ All modified and coverable lines are covered by tests. 📢 Thoughts on this report? Let us know! |
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 #13
Closes #14
Closes #15
Closes #16
allow_squash_mergestill needs to be disabled by an admin; the automatedgh repo editwas not permitted in this session.)incremental,tsBuildInfoFile,compositeandreferencesfrom all tsconfigs; roottscscript is nowpnpm -r --workspace-concurrency=1 exec tsc(topological, per package) instead oftsc -b;typescriptupgraded to^7.0.2. The trainer/clipathsaliases to siblingsrc/were removed because they only worked under project references (they causedrootDirerrors otherwise); packages resolve each other through built workspacedistoutput, which the topological build order provides..vscode/settings.jsonand.vscode/extensions.jsoncommitted (gitignore narrowed to keep the rest of.vscode/ignored). Toolchain is already oxlint/oxfmt so the editor formatter matches.Validation
pnpm build,pnpm tsc,pnpm lint,pnpm test(18 files / 61 tests pass),pnpm size,pnpm release:check(9 pass) all green locally with TypeScript 7.0.2.