Repository navigation
docs(zsh-lint): update the guide for v1.6.0 and the MCP server - #948
Conversation
The Zsh Lint guide installed v1.3.0, required Go 1.25 and did not mention the mcp subcommand, while v1.6.0 is published and needs Go 1.27. Install and pin v1.6.0 throughout, require Go 1.27, describe -h and --help, note that quoting/unquoted-var reports only under project configuration at Info severity, show the survey's actual output, and add an MCP server page linked from the guide index. Closes #946
Deploying zsh with
|
| Latest commit: |
5a4b084
|
| Status: | ✅ Deploy successful! |
| Preview URL: | https://5f0c1fdb.zsh.pages.dev |
| Branch Preview URL: | https://docs-zsh-lint-guide-v1-6-0.zsh.pages.dev |
ss-o
left a comment
There was a problem hiding this comment.
Fallback review under ADR-0026: Copilot request not registered on 5a4b084
Sole-maintainer exception
The maintainer elected the ADR-0035 sole-maintainer exception for this pull request at head 5a4b084. No second human reviewer is available, and the configured Copilot request on this head did not register (requested 2026-10-19T19:50:51Z, no review_requested event for Copilot; cause unconfirmed). A new head voids this election and this review.
Findings
No actionable findings.
Scope: the complete diff from main at 4187d03 to 5a4b084: community/04_zsh_lint/index.mdx, the guide pages 01 to 07, and the new 09_mcp_server.mdx, against the acceptance criteria of #946.
Note
This fallback review and the exact-head review below are not a human review or an approval to merge.
Exact-head read-only review
A read-only exact-head review of this commit, in its own reviewing session using the organization code-review checklist, reported no actionable findings. Its evidence:
- CLI and help statements match
cmd/zsh-lint/main.goandmcp.goatv1.6.0;--helpandmcp --helpwere run with the installedv1.6.0binaries. - The
quoting/unquoted-varstatements (project configuration only, Info severity, exit status 0) matchinternal/rules/unquoted_var.goand a binary run with and without--no-config. Go 1.27 matchesgo.mod. - The MCP page matches
docs/project/output-contract.mdandmcp.go: two tools, their arguments and results,isErrorhandling with partial envelopes,--zsh,zsh -f -nandzcompile -U -R, the empty-stderr validity rule, and the native-check limits. Its statements were also exercised over stdio. - Example outputs (
hello.zsh:4:13, the survey'sOKlines and summary, thezsh_syntaxJSON shape) match the binaries' output. - Frontmatter, sidebar positions (
09_mcp_server.mdxis 10, after the rule reference at 9), relative links, the index Card target and icon, and code-fence languages are valid.validate-frontmatter.mjs,validate-code-fences.mjsand its tests pass. The diff has no em dash. - Unavailable there: a full Docusaurus build, because that read-only session had no installed dependencies.
Validation
- Passed on the head: all 12 pull-request checks, including Branch Name, Issue Link, PR Title, Commits, Trunk Code Quality, CodeQL, Org Routing, Validate Corpus and the Cloudflare Pages preview build.
- Reproduced for this review: the preview deployment serves the new page at
/community/zsh_lint/zsh-lint-mcp-serverwith itsMCP serverheading and tool sections, and Getting started showsv1.6.0. The examples were re-run with binaries installed bygo install ...@v1.6.0.
Checklist verdicts and supporting evidence
- Accuracy: pass. Every changed statement traces to the
v1.6.0README, output contract, command source or rule doc comments, or to a binary run. - Scope: pass. Only the guide pages under
community/04_zsh_lint/changed; the generated rule reference, configuration and other content roots are untouched. - Rendering and navigation: pass. The preview build compiled every page, the new page is reachable from the index Card and from Getting started, and its sidebar position follows the rule reference.
- Security and trust boundaries: pass. The MCP page states that native checks run the system
zshenv, are not a sandbox for hostile source, and need trusted inputs, Zsh executable and startup configuration, consistent with the README. - Traceability: pass. The body closes #946, whose criteria are the version, Go requirement, MCP documentation and changed-behaviour corrections.
Limits and recovery
- Unavailable: a full local Docusaurus build. The Cloudflare Pages preview build on this head is the build evidence.
- Recovery: if a deployed page is wrong after merge, revert the squash commit on
main; the previous guide text returns with the next deployment.
Summary
Closes #946.
The Zsh Lint guide described
v1.3.0and Go 1.25. This updates it for the publishedv1.6.0, whose module requires Go 1.27, and documents the newzsh-lint mcpsubcommand. The generated rule reference (08_rule_reference.mdx) is unchanged here; it was updated tov1.6.0by #947.zsh-lintandzsh-lint-survey, the CI example and every version statement usev1.6.0. The Go requirement and the CI example'sgo-versionare 1.27. The historical notes that project configuration needsv1.3.0or newer are kept.-hand--helpare documented in Getting started, CI and JSON, and Troubleshooting: they print usage to standard output and exit 0 forzsh-lintandzsh-lint mcp, while other usage errors still exit 2.quoting/unquoted-varreports only for sources under a project configuration, at Info severity, so such a finding alone leaves the exit status at 0.09_mcp_server.mdx, linked from the guide index and from Getting started, covers starting the stdio server and how a client launches it (commandzsh-lint, arguments["mcp"]). It documents the two tools with their arguments, results and errors, the--zshstartup option, and the limits of the native checks. It adds no client-specific configuration format.Verification
Verified commit:
5a4b084e05d73b7002dd78d3b76280f918c96afe, based onmainat4187d03d162c2fa6b1469d9f692df42655dafad2.v1.6.0source (README.md,docs/project/output-contract.md,cmd/zsh-lintand the rule doc comments) and against binaries installed withgo install ...@v1.6.0. With those binaries:--helpexits 0 on standard output;print -r -- $nameon line 4 of a configured plugin source reportshello.zsh:4:13: [quoting/unquoted-var] Variable expansion should be double-quotedat Info with exit 0, and nothing without configuration; the JSON envelope matches the example's fields; the survey printsOK <file>lines and2 file(s) surveyed, 2 ok, 0 failed.node scripts/validate-frontmatter.mjs,node scripts/validate-code-fences.mjs, no-fix Trunk on the changed pages, andgit diff --check.