docs(web/guides): correct start-here guide drift from the 2026-06 behavioral audit - #3120
Conversation
…avioral audit Six audit findings across the non-tutorial start-here pages (audit group p2-1, claims index-01 / welcome-01 / whywheels-01 / installing-03 / rc-01 / engines-04): - index.mdx: add the missing Release Channels LinkCard to the section grid - welcome.mdx: include BoxLang in the supported-engine list (matches cfml-engines.mdx and the CI compat matrix) - why-wheels.mdx: the Rails Jobs row cited a nonexistent worker CLI (wheels jobs work); describe the real programmatic surface and cite ##3090 for the worker CLI - installing.mdx: drop the 3x stale 'Multiple version surfaces during 4.0-SNAPSHOT' asides (4.0 GA shipped 2026-06-09) - release-channels.mdx: the channel parenthetical comes from 'wheels version' (Wheels 4.0.3 (stable) + Java line), not 'wheels --version' (no channel info); fix the at-a-glance row and the how-to-tell sample, verified against the released 4.0.3 CLI - cfml-engines.mdx: 'generators are pure file-system operations' gains the 'wheels generate admin' exception (requires a running project-bound server; Module.cfc write-side guard) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Peter Amiri <peter@alurium.com>
There was a problem hiding this comment.
Wheels Bot — Reviewer
TL;DR: This PR fixes six verified drift findings in the start-here guides from the 2026-06 behavioral audit. Five of the six fixes check out cleanly against the code — each claim verified at its source (Module.cfc, the CI compat matrix, CLAUDE.md / issue 3090, sidebar frontmatter). One fix introduces a new piece of drift while removing the old one: the added note in release-channels.mdx claims wheels --version shows no channel parenthetical, but two in-repo distribution sources (the Linux deb/rpm wrapper and the Homebrew bleeding-edge formula) print exactly that parenthetical from --version. Verdict: request changes — one small, well-scoped wording fix.
Correctness
web/sites/guides/src/content/docs/v4-0-0/start-here/release-channels.mdx:45 — the absolute "no channel parenthetical" claim about wheels --version is wrong for two documented install paths.
The added note reads:
Note the command is
wheels version(no dashes). The flag formwheels --versionprints aWheels Version: <version>line plus ASCII art, with no channel parenthetical.
That matches the Homebrew stable install the PR was verified against (LuCLI absorbs the flag and prints its banner — consistent with command-line-tools/installation.mdx:248: "LuCLI handles that flag before dispatching to the module"). But it is contradicted by the packaging sources in this repo:
- deb/rpm wrapper —
tools/distribution-drafts/linux-packages/build-linux-packages.shgenerates the/usr/bin/wheelswrapper, which short-circuits--version/-v: it reads the channel from/opt/wheels/.channel(defaulting to stable) and prints a single line of the formwheels <installed-version> (<channel>)— channel included, and no ASCII art either. This is shipped behavior, not a draft artifact:command-line-tools/installation.mdx:71documents/opt/wheels/.channelbeing "read by the wrapper forwheels --version", and the wrapper comment cites issue 2700 (a live bug where missing stamp files made--versionprint "unknown (stable)"). - Homebrew bleeding-edge formula —
tools/distribution-drafts/homebrew/wheels-be.rb:101-102short-circuits the same flags and printswheels <version> (bleeding-edge), and the formula test (lines 155-156) asserts thatbleeding-edgeappears inwheels --versionoutput. So a bleeding-edge brew user — the exact audience of the page sample showing(bleeding-edge)— sees the channel right there in--version, directly contradicting the note.
The core fix on this page is right and should stay: wheels version (the subcommand, cli/lucli/Module.cfc:328) always appends the channel tag and is the reliable form on every install. Only the unqualified negative in the note needs scoping. Suggested replacement for line 45:
Note the command is
wheels version(no dashes). The flag formwheels --versionvaries by install method — Homebrew stable and manual JAR installs print aWheels Version: <version>banner plus ASCII art with no channel, while the apt/yum and Homebrew bleeding-edge package wrappers print a one-linewheels <version> (<channel>).wheels versionis the form that reports the channel reliably everywhere.
Whichever wording lands, note that command-line-tools/installation.mdx:194 currently attributes the channel parenthetical to wheels --version for all packaged installs — the follow-up audit group covering command-line-tools should be synced to the same story so the two pages stop contradicting each other.
Docs
Non-blocking observations (no change requested in this PR):
- All five other fixes verified clean: the
wheels generate adminexception matches the write-side guard atcli/lucli/Module.cfc:3636(requireRunningServer with requireProjectConfig set to true); the Jobs-row fix matches reality (Module.cfc has no jobs function; the worker CLI is issue 3090); BoxLang in welcome.mdx matches cfml-engines.mdx and the CI compat matrix; the Release Channels LinkCard placement matches its sidebar order 5 frontmatter; and the removed 4.0-SNAPSHOT asides are clearly stale post-GA, with the surrounding steps intact. - The doc comment above the version function at
cli/lucli/Module.cfc:320still says it emits "the three-linewheels --versionformat" — it is actually thewheels versionsubcommand, the very confusion this PR untangles. Worth a one-line cleanup in a future code PR.
Commits
Single commit — docs(web/guides): correct start-here guide drift from the 2026-06 behavioral audit — valid type, header under 100 chars, subject explains the why. No changelog fragment needed for a docs change.
The unqualified 'no channel parenthetical' note was wrong for two shipped install paths: the deb/rpm wrapper and the Homebrew bleeding-edge formula both short-circuit --version and print 'wheels <version> (<channel>)'. Reviewer-supplied wording; the installation.mdx cross-page sync rides with the cliref audit group. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Peter Amiri <peter@alurium.com>
There was a problem hiding this comment.
Wheels Bot — Reviewer
TL;DR: Re-review at head 535ec20d5. The previous round's single blocking finding — the unqualified claim that wheels --version shows no channel parenthetical — is resolved by the new commit, which scopes the claim by install method. I re-verified every clause of the rewritten note against the actual packaging sources (including the external Homebrew tap), and the five other audit fixes remain verified clean. Verdict: approve — this supersedes my earlier CHANGES_REQUESTED review on 77a2c4405, which is now fully addressed.
Previously blocking finding — resolved
release-channels.mdx:45 — "wheels --version prints … no channel parenthetical" (absolute claim, contradicted by the deb/rpm wrapper and Homebrew bleeding-edge formula).
Resolved by 535ec20d5 ("docs(web/guides): scope the --version channel claim by install method"). The note now reads:
The flag form
wheels --versionvaries by install method — Homebrew stable and manual JAR installs print aWheels Version: <version>banner plus ASCII art with no channel, while the apt/yum and Homebrew bleeding-edge package wrappers print a one-linewheels <version> (<channel>).wheels versionis the form that reports the channel reliably everywhere.
Each clause verified against source in this session:
- apt/yum wrapper includes the channel —
tools/distribution-drafts/linux-packages/build-linux-packages.sh(wrapper--version|-vcase):echo "wheels ${INSTALLED_VERSION} (${CHANNEL})", channel read from/opt/wheels/.channeldefaulting tostable. ✓ - Homebrew bleeding-edge includes the channel —
tools/distribution-drafts/homebrew/wheels-be.rb:101-102:echo "wheels #{version} (bleeding-edge)"; the formula test (lines 155-156) assertsbleeding-edgeappears inwheels --versionoutput. ✓ - Homebrew stable shows no channel — verified against the live tap (
wheels-dev/homebrew-wheelsFormula/wheels.rb,--version|-vshort-circuit): printsWheels Version: $ver, ASCII art, and the homepage URL — no channel anywhere in the block. ✓ wheels versionreports the channel reliably everywhere —cli/lucli/Module.cfc:328-333always appends the channel tag, andcli/lucli/services/ReleaseChannel.cfc::classify()returns a named channel for every version shape (development/release-candidate/bleeding-edge/ stable fallback), so the parenthetical never goes missing. The page's existing(development)caveat matches theclassify()dev-checkout branch. ✓
The at-a-glance table row and both sample blocks were already corrected in the first commit and stand.
Docs
Non-blocking observations, no change requested:
- The five other audit fixes re-confirmed clean: the
wheels generate adminexception matches the write-side guard atcli/lucli/Module.cfc:3636($requireRunningServer(... requireProjectConfig = true), with the schema-introspection rationale in the adjacent comment); the Jobs-row fix matches reality (nojobsfunction inModule.cfc; worker CLI tracked in #3090); BoxLang inwelcome.mdxmatchescfml-engines.mdxand the CI compat matrix; the Release Channels LinkCard placement inindex.mdxmatches itsorder: 5sidebar frontmatter (between First 15 Minutes at 4 and CFML Engines at 6); the removed 4.0-SNAPSHOT asides ininstalling.mdxare stale post-GA, with the surrounding steps intact. - Carried over from the previous round: the doc comment above
version()atcli/lucli/Module.cfc:320still says it emits "the three-linewheels --versionformat" — it is thewheels versionsubcommand. Worth a one-line cleanup in a future code PR. - New, external-repo: the stable tap formula's per-subcommand help (
wheels-dev/homebrew-wheelsFormula/wheels.rb, theversion)help case) sayswheels versionis "Same as 'wheels --version'" — which this PR now correctly documents as not the same on that install. Out of scope here; flagging for whoever next touches the tap.
Commits
Two commits, both docs(web/guides): ... — valid type, headers under 100 chars, subjects state the why. Docs-only change, so no changelog fragment is required.
Final-wave docs fixes from the 2026-06 guide behavioral audit — manifest group 1 (start-here, non-tutorial). Six findings, six files, all under
web/sites/guides/src/content/docs/v4-0-0/start-here/. Every fix describes verified current behavior of the released 4.0.3 CLI / framework.Fixes
index.mdxwelcome.mdxcfml-engines.mdx(Production-supported: Yes) and the CI compat matrix (compat-matrix.ymlengines incl.boxlang).why-wheels.mdxwheels jobs work, which does not exist (Module.cfchas nojobsfunction; released 4.0.3 errors "has no function with name [jobs]"). Now describes the real surface — built-in DB-backed queue viawheels.Job/processQueue()— and cites #3090 for the worker CLI.installing.mdxrelease-channels.mdxwheels version, notwheels --version. Verified against the released CLI:wheels --version→Wheels Version: 4.0.3+ ASCII art, no channel;wheels version→Wheels 4.0.3 (stable)+Java 21.0.11. Fixed the at-a-glance row, the "How to tell" command + samples, and added a note distinguishing the two forms.cfml-engines.mdxwheels generate adminintrospects the project schema through a running project-bound server and refuses to run without one (Module.cfcwrite-side guard /$requireRunningServer(requireProjectConfig=true)). Applied to both the Adobe CF and BoxLang asides.Verification
pnpm verify:docsrun per touched page fromweb/sites/guides— all exit 0 (installing.mdx's{test:cli}block: 1 passed).wheels version/wheels --versionoutput shapes re-confirmed live against brew wheels 4.0.3 before documenting.Evidence source: P2 audit manifest (
/tmp/p2-docs-manifest.md, group 1) + verifier evidence in the audit task output; catalog atdocs/superpowers/audits/2026-06-guide-audit-findings.md.🤖 Generated with Claude Code