docs: update Gaze documentation for multi-language support - #258
docs: update Gaze documentation for multi-language support#258jflowers wants to merge 4 commits into
Conversation
- Add External Analyzers section with JSON-RPC 2.0 protocol docs - Add 3 new CLI flags (--analyzer, --language, --test-short) - Expand side effect taxonomy to 48+ universal types - Add 4 new architecture packages (protocol, provider, adapter, cliutil) - Add Migration Notes for breaking JSON and coverage changes - Update homepage badge from "Go" to "Go + Multi-Language" - Update tester guide with --test-short and side effect count - Update team page and projects index for multi-language framing - Update Current Limitations to scope P3-P4 to Go analysis - Add OpenSpec change artifacts for gaze-multi-language-docs Closes #227, closes #228, closes #229, closes #230 Assisted-by: claude-opus Generated with AI assistance (claude-opus)
yvonnedevlinrh
left a comment
There was a problem hiding this comment.
PR Review: REQUEST CHANGES
Well-structured, spec-complete documentation PR that accurately reflects Gaze's multi-language evolution across all pages. The OpenSpec workflow is complete and npm run build passes cleanly. One HIGH-severity content-accuracy defect blocks approval; everything else is minor. All findings below are introduced by this PR — none are pre-existing (the Migration Notes / alias content does not exist on main).
CI Status
No CI checks are configured on the branch. Local npm run build passes (140 pages, no new warnings). The only build warnings (Description too short on /tags/*) are pre-existing auto-generated pages, unrelated to this PR.
Findings
🔴 HIGH — Fabricated/mislabeled alias list
File: content/docs/projects/gaze.md (Migration Notes → JSON Output Changes)
The "Seven language-neutral SideEffectType aliases" are listed as:
AsyncTaskSpawn, FFICall, ErrorSignal, GeneratorYield, ContainerMutation, StreamOutput, ResourceManagement
Verified against upstream gaze#180, the actual 7 aliases are:
AsyncTaskSpawn, AsyncMessageSend, AsyncChannelClose, BarrierOp, PanicRecovery, FFICall, ObjectPoolOp
Only 2 of 7 are correct. The other 5 (ErrorSignal, GeneratorYield, ContainerMutation, StreamOutput, ResourceManagement) are the new universal types from gaze#184, conflating two upstream PRs. This violates the non-negotiable Content Accuracy mandate (AGENTS.md) and would ship incorrect identifiers to JSON consumers relying on the migration guide.
Fix: Replace with the correct 7 alias names from gaze#180, or reword to a non-exhaustive example (e.g., "language-neutral aliases such as AsyncTaskSpawn and FFICall").
🟡 MEDIUM — Formatting not applied
Table pipes in the new CLI/architecture tables are unaligned and layouts/home.html has a long line (FT-003). Run npm run format before merge. Non-blocking — Prettier is not enforced by CI.
🟡 MEDIUM — Missing blog/website tracking issue (acknowledged)
Deferred in design.md Non-Goals — reasonable scoping decision, follow-up only.
⚪ LOW
"48+"overstates a fixed count — upstream states an exact 48 (38 + 10). Consider "48 types".- Protocol v1.1.0 bump not documented — issue #229 explicitly requests noting the bump; the docs omit it.
- Migration notes lack version pinning (acknowledged in PR body) — name the version the breaking changes landed in for actionability.
Security
No issues. The home.html change is a static text label; the .uf/dewey/learnings/*.md files contain no secrets; external links point to the legitimate upstream repo.
Constitution / Workflow Compliance
- ✅ OpenSpec workflow complete (proposal, design, spec, tasks,
.openspec.yaml); branch matchesopsx/convention. - ✅ Zero-Waste, Neighborhood Rule, and frontmatter all pass — no placeholder content, anchors resolve, cross-page consistency handled.
Linked Issues
| Issue | Coverage |
|---|---|
| #227 — External analyzer protocol + CLI flags | ✅ Covered & accurate |
#228 — JSON go_version→language_version |
|
| #229 — Expanded taxonomy (10 new types) | ✅ 10 types match; |
#230 — --test-short + coverage change |
✅ Covered & accurate |
Verdict
REQUEST CHANGES — 1 HIGH, 2 MEDIUM, 3 LOW.
Required before merge: correct the alias list (HIGH).
Recommended: run npm run format, document the protocol v1.1.0 bump (#229), and consider "48 types" over "48+".
*This review was generated with AI assistance._
…bump Addresses PR #258 review feedback from @yvonnedevlinrh. - Replace fabricated alias list with non-exhaustive example using verified names from gaze taxonomy (AsyncTaskSpawn, AsyncMessageSend, BarrierOp, PanicRecovery, FFICall) and link to protocol docs - Change "48+ types" to "dozens of types" to avoid staleness - Pin migration notes to v1.7.0 - Add protocol v1.1.0 version bump note to migration section Signed-off-by: jflowers <jflowers@users.noreply.github.com> Assisted-by: claude-opus-4-6
Signed-off-by: jflowers <jflowers@users.noreply.github.com> Assisted-by: claude-opus-4-6
Addresses PR #258 review feedback from @yvonnedevlinrh (FT-003). Signed-off-by: jflowers <jflowers@users.noreply.github.com> Assisted-by: claude-opus-4-6
|
Thanks @yvonnedevlinrh — all feedback addressed in the following commits: 1. Fabricated/mislabeled alias list (HIGH — ACCEPT) 2. Formatting (MEDIUM — ACCEPT) 3. Missing blog/website tracking issue (MEDIUM — ACCEPT) 4. "48+" count (LOW — MODIFIED) 5. Protocol v1.1.0 bump (LOW — ACCEPT) 6. Version pinning (LOW — ACCEPT) |
yvonnedevlinrh
left a comment
There was a problem hiding this comment.
PR Review: APPROVE
Re-review verifying resolution of the findings from my earlier CHANGES_REQUESTED review. All required and recommended items have been addressed across commits aac2011, 56bc878, and 84b035f.
Prior Findings — Resolution Status
| Sev | Finding | Status |
|---|---|---|
| HIGH | Fabricated/mislabeled alias list in gaze.md Migration Notes |
✅ Resolved — rewritten as a non-exhaustive example (e.g., AsyncTaskSpawn, AsyncMessageSend, BarrierOp, PanicRecovery, FFICall) with a link to the protocol docs. No universal-type names leak into the alias list. |
| MEDIUM | Prettier formatting not applied | ✅ Resolved — prettier -c is now clean on all substantive files. |
| MEDIUM | Missing blog/website tracking issue (acknowledged) | design.md Non-Goals — non-blocking follow-up. |
| LOW | "48+" overstates a fixed count |
✅ Resolved — now "dozens of types". |
| LOW | Protocol v1.1.0 bump not documented (#229) | ✅ Resolved — documented in Migration Notes. |
| LOW | Migration notes lack version pinning (acknowledged) | ✅ Resolved — pinned to Gaze v1.7.0. |
Content Accuracy Note
Cross-checking upstream, the authoritative count is 11 language-neutral aliases (not the 7 I referenced in my prior review from gaze#180). This makes the author's choice to reword to a non-exhaustive "e.g." example with a link to the canonical protocol docs the correct, robust fix — it sidesteps the exact-count problem entirely. AsyncTaskSpawn (= GoroutineSpawn) and FFICall (= CgoCall) are directly confirmed upstream; the remaining names map to confirmed Go effect types. No fabrication remains.
Verification
npm run build(hugo --minify --gc): passes — 140 pages, only pre-existing/tags/*"Description too short" warnings (unrelated to this PR).prettier -con all changed substantive files: clean.- Linked issues #227–#230: all covered and accurate, including the previously-omitted protocol v1.1.0 bump.
Security & Constitution
No issues. The home.html change is a static text label, the .uf/dewey/learnings/*.md files contain no secrets, external links point to the legitimate upstream repo, and the OpenSpec workflow (proposal, design, spec, tasks) is complete with the opsx/ branch convention.
Verdict
APPROVE — every blocking and recommended item resolved. The only remaining item is the acknowledged, deferred blog-tracking issue (a content-pipeline follow-up, not a documentation defect).
This review was generated with AI assistance.
Summary
Updates the Unbound Force website to document Gaze's evolution from a Go-only test quality tool to a multi-language analysis framework. This change addresses four upstream PRs that introduced the external analyzer protocol, breaking JSON changes, an expanded side effect taxonomy, and a new
--test-shortflag.Key changes:
--languageflaggo_version→language_version) and coverage behavior change--analyzer,--language,--test-shortprotocol,provider,adapter,cliutilCloses #227, closes #228, closes #229, closes #230
How to Test
npm run build— should succeed with no new warningsnpm run devand verify:/docs/projects/gaze/— External Analyzers section, expanded CLI flags table (7 flags), Universal Side Effect Types, Migration Notes, updated architecture table (15 packages)/— Gaze card badge shows "Go + Multi-Language"/docs/getting-started/tester/— migration callout,--test-shortexample, "48+ types" count/docs/team/gaze-tester/— multi-language framing, no "for Go" language/docs/projects/— Gaze description says "Go-native, with multi-language support"How to Demo
Key Files Changed
content/docs/projects/gaze.mdcontent/docs/getting-started/tester.md--test-shortmigration callout, CI example, side effect count updatecontent/docs/team/gaze-tester.mdcontent/docs/projects/_index.mdlayouts/home.htmlopenspec/changes/gaze-multi-language-docs/Known Issues
The following findings from the review council were acknowledged but not resolved:
This PR was generated by /uf.finale (AI-assisted).