docs: record the four new make targets and the composed-gate convention - #859
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
🟡 Changes recommended
The documented check target is incomplete and should list all five components.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Updates CLAUDE.md with new Make targets, corrected command descriptions, and gate-composition guidance.
Changes:
- Documents TUI and worktree-pruning targets.
- Corrects
lintandcheckdescriptions. - Adds workflow guidance for verifying CI gates.
File summaries
| File | Summary |
|---|---|
CLAUDE.md |
Documentation updated; the check description should also include install-js and check-message-types. |
Review details
- Files reviewed: 1/1 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Doc currency for #852-#858. AGENTS.md is a symlink to this file, so Codex picks these up automatically. - Running: adds check-tui, test-tui, prune-worktrees{,-dry}; corrects 'make check' (composed from install-js, check-message-types, lint, typecheck and check-js) and 'make lint' (described as 'Compile-check'; it is ruff over four directories, and was inaccurate before this session too — fixed because it sits in the same list being corrected for accuracy). - Workflow: a new convention for the defect that recurred four times in one session — a gate that exists in the Makefile and still runs nowhere. Compose targets rather than duplicating their commands, confirm CI invokes the target and read the job log, and probe every gate for teeth. Notes that pyright exits 0 when it reports only warnings, which makes a pyrightconfig.json addition report without failing. Both composition lists are checked against Makefile:105 programmatically, not by eye — an earlier draft listed only three of the five prerequisites.
lmorchard
force-pushed
the
docs/gate-conventions
branch
from
September 16, 2026 17:56
a4342b4 to
b963a42
Compare
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.
Doc currency for the #852–#858 run.
AGENTS.mdis a symlink toCLAUDE.md(since #852), so Codex picks these up automatically.
Running
Adds the four targets this session introduced, which the list was missing:
check-tui,test-tui,prune-worktrees,prune-worktrees-dry.Corrects two existing lines in the same block:
make check— now composed fromlint + typecheck + check-js, not its owncopy of those commands (fix(#856): gate scripts/ and contrib/ with ruff, scripts/ with pyright #858).
make lint— was described as "Compile-check"; it isruff checkoversrc/ tests/ scripts/ contrib/. This was already wrong before this session,fixed here only because it sits in the very list being corrected for accuracy.
Workflow
One new convention, for the defect that showed up four times in one session:
a gate that exists in the
Makefile, is described as live, and runs nowhere.check-message-typesandcheck-jswere ungated because CI open-coded twoof
make check's five steps (ci: run 'make check' instead of open-coding two of its five steps #854)tui/was in neither the Makefile nor CI, and its typecheck was failing onmain (fix(#725): gate tui/ with its own typecheck + test job, and handle shell_approval #855 / tui/ has no test or typecheck gate — and typecheck fails today #725)
scripts/was outside ruff, pyright, and fmt entirely (scripts/ is outside lint, format, and typecheck — and it is hiding a silent Config bug #856)check:carried its ownruff check src/ tests/line, so wideninglintwould have gated nothing (fix(#856): gate scripts/ and contrib/ with ruff, scripts/ with pyright #858)
Each was invisible because everything around it was green, and each was hiding
something real — a silently no-opping TUI dispatcher, and a script that
clobbered the live embedding index and then crashed.
The convention: compose targets instead of duplicating their commands, confirm
CI invokes the target and read the job log to see the commands actually run,
and probe every new gate for teeth with a deliberate fault in a throwaway file.
It also records that
pyrightexits 0 when it reports only warnings — soadding a path to
pyrightconfig.jsonmakes it report without failing.Docs only; no code paths touched.