Skip to content

backlog(B-0106): add P2 row — tsc --noEmit gate job for tools/**.ts#888

Merged
AceHack merged 1 commit intomainfrom
backlog/B-0106-tsc-noemit-gate-job-2026-04-30
Apr 30, 2026
Merged

backlog(B-0106): add P2 row — tsc --noEmit gate job for tools/**.ts#888
AceHack merged 1 commit intomainfrom
backlog/B-0106-tsc-noemit-gate-job-2026-04-30

Conversation

@AceHack
Copy link
Copy Markdown
Member

@AceHack AceHack commented Apr 30, 2026

Summary

Adds docs/backlog/P2/B-0106-tsc-noemit-gate-job-for-ts-tools-2026-04-30.md — captures the CI gap surfaced during slice-9 #882 post-merge audit on 2026-04-30: a real TS2322 strict-typecheck error shipped to main because gate.yml runs dotnet build for F#/C# but no tsc --noEmit for TypeScript scripts under tools/**.

The specific bug fix shipped as #887. This row is the missing gate.

Composes with

  • B-0086 — TS+Bun migration trajectory; the more we port, the more important this gate becomes.
  • The "lint (semgrep)" pattern — semgrep was added in round 30 for the same reason (codified rules with no gate aren't a control); same shape applies here.

Effort

S (small) — ~30 lines of YAML modeled after lint-shell / lint-markdown. Toolchain (TypeScript 6.0.3 in package.json devDeps + bun via mise) already pinned. No new external action to SHA-pin.

Test plan

  • docs/backlog/P2/B-0106-…md follows the per-row schema (frontmatter + body).
  • CI lint (markdownlint + frontmatter validation).

🤖 Generated with Claude Code

Captures the CI gap surfaced during slice-9 #882 post-merge audit
on 2026-04-30: a real TS2322 strict-typecheck error shipped to main
because gate.yml runs `dotnet build` for F#/C# but no `tsc --noEmit`
for TypeScript scripts under `tools/**`. ESLint with typed-linting
catches most issues but not all assignability narrowings.

The specific bug fix shipped as PR #887. This row tracks the
*missing gate* — adding `lint (tsc tools)` to gate.yml is S-effort
follow-up modeled after `lint-shell` / `lint-markdown`.

Composes with B-0086 (TS+Bun migration). The script surface under
`tools/` is at 32 ported files and growing — without the tsc gate,
this class of error will recur silently.
Copilot AI review requested due to automatic review settings April 30, 2026 04:53
@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@AceHack AceHack enabled auto-merge (squash) April 30, 2026 04:54
@AceHack AceHack merged commit 5353fad into main Apr 30, 2026
24 checks passed
@AceHack AceHack deleted the backlog/B-0106-tsc-noemit-gate-job-2026-04-30 branch April 30, 2026 04:56
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new P2 backlog row documenting a missing CI gate: TypeScript strict typechecking (tsc --noEmit) for tools/** TypeScript scripts, motivated by a TS2322 error that reached main due to the current gate.yml not running tsc.

Changes:

  • Add docs/backlog/P2/B-0106-tsc-noemit-gate-job-for-ts-tools-2026-04-30.md capturing the CI gap and proposed gate-job scope/acceptance criteria.

id: B-0106
priority: P2
status: open
title: Add `tsc --noEmit` gate job for tools/**.ts so type errors fail CI
Copy link

Copilot AI Apr 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The glob in the title looks off: tools/**.ts won’t match nested directories the same way tools/**/*.ts does. Since this row is about gating TS scripts under tools/, consider updating the pattern to tools/**/*.ts (or tools/**/*.ts + tools/**/*.tsx if applicable) to avoid ambiguity later.

Copilot uses AI. Check for mistakes.
tags: [ci-lint, factory-hygiene, ts-bun-migration, mechanical-guard, missing-gate]
---

# `tsc --noEmit` gate job for tools/**.ts
Copy link

Copilot AI Apr 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same glob issue in the H1: tools/**.ts is ambiguous/unusual for matching tools/ subdirectories. Suggest tools/**/*.ts to reflect the intended target set for the CI typecheck gate.

Copilot uses AI. Check for mistakes.
1. Runs `./tools/setup/install.sh` (three-way-parity, GOVERNANCE §24).
2. Runs `bun install --frozen-lockfile` to materialize `node_modules`
for `typescript@6.0.3` (already in `package.json` devDeps).
3. Runs `bun --bun tsc --noEmit -p tsconfig.json`.
Copy link

Copilot AI Apr 30, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The repo docs and checklists use bun x tsc --noEmit (and package.json has a typecheck script), but this row calls out bun --bun tsc ..., which doesn’t appear elsewhere in the repo. To reduce confusion when implementing the gate job, consider switching this to the established invocation (bun x tsc --noEmit / bun run typecheck, optionally with -p tsconfig.json if needed).

Suggested change
3. Runs `bun --bun tsc --noEmit -p tsconfig.json`.
3. Runs `bun x tsc --noEmit -p tsconfig.json`.

Copilot uses AI. Check for mistakes.
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.

2 participants