feat(TP-194): code-quality gates flip — typecheck/lint/format:check now required at PR time#574
Merged
Merged
Conversation
…b-level, not step-level
…required - Add Typecheck step (npm run typecheck) before Lint - Remove continue-on-error: true from Lint (Biome) step - Add Format check (Biome) step (npm run format:check) after Lint - Order: typecheck → lint → format:check → tests → CLI smoke → docs links
Removes the temporary activation note added in TP-191 from templates/agents/task-reviewer.md. The Quality-check verification section returns to its TP-188 as-shipped form: failing typecheck/lint/format:check downgrades APPROVE → REVISE unconditionally.
…e gates - AGENTS.md: add typecheck/lint/format:check to the validation checklist - docs/maintainers/release-process.md: add gate commands to section 2 pre-release checks + add three checkboxes to the Pre-release checklist - docs/maintainers/development-setup.md: add new "Code-quality gates (required for every PR)" section before the existing Biome section, with a relative link to the code-quality-gates spec
The development-setup.md doc references npm run lint:fix in both the pre-existing Biome section and the new Code-quality-gates section, but the script did not exist. Adds: "lint:fix": "biome lint --write --no-errors-on-unmatched ." This is Biome's documented lint-autofix invocation. Verified all three CI gates (typecheck, lint, format:check) still exit 0.
… reviewer smoke documented
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.
Fifth and final packet of the code-quality-gates spec sequence. This is the gate flip — the moment typecheck/lint/format:check become required CI gates.
What this PR does
CI workflow (
.github/workflows/ci.yml)Typecheckstep (runsnpm run typecheck)continue-on-error: truefrom existingLint (Biome)stepFormat check (Biome)step (runsnpm run format:check)Reviewer agent activation
templates/agents/task-reviewer.md(added in TP-191 as a guard during the cleanup phase)Documentation
AGENTS.md: validation checklist now includesnpm run typecheck/lint/format:checkdocs/maintainers/release-process.md: pre-release checklist updateddocs/maintainers/development-setup.md: gate commands documented for new contributorsBonus DX
lint:fixscript inpackage.json(biome lint --write --no-errors-on-unmatched .) for one-command auto-fix of fixable lint issuesValidation
npm run typechecknpm run lintnpm run format:checknpm run test:fastBranch-protection operator handoff
This PR flips three CI gates from advisory to required by removing
continue-on-error: trueand adding two new steps to the existingcijob. No branch-protection changes are required — the existing requiredcistatus check (verified viagh api repos/HenryLach/taskplane/branches/main/protectionreturning["ci"]) already blocks merge when any step in thecijob fails.Operator action (verification-only):
gh pr checks <this PR #>and confirm the rendered check-context name is stillci.Require status checks to passstill listsci.If at some future point you want per-gate visibility in branch protection (e.g., to require
Typecheckindependently ofLint), the follow-up is to split the gates into separate jobs. Currently out of scope per the spec's Tier-1.5 follow-up list.Full code-quality-gates sequence — now complete
biome format --write+.git-blame-ignore-revs+.gitattributesSage post-merge review summary
Sage reviewed this PR before opening and validated: CI gate wiring is correct, reviewer activation removal is clean, docs alignment is consistent. One important nuance — branch protection requires job contexts, not step names — was already correctly handled by the worker's R001 plan-review (caught and fixed in design before implementation; the operator-handoff text above reflects this). Verdict: looks solid and shippable.
After this merges
v0.30.0 release. This is a meaningful semver event — CI gating change is operator-observable, and the public/repo-watcher signal is "taskplane now has real static-analysis gates at PR time." CHANGELOG entries from all five packets ship together.
Suggested release flow (same pattern we've used 7 times this week):
release/v0.30.0from main[Unreleased]→[0.30.0] - 2026-05-10, insert fresh empty[Unreleased]npm version minor--mergeCloses
(implicit — completes the code-quality-gates spec sequence)