feat(cli): enable mcp-app starter support#112
Conversation
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughThis PR adds an mcp-app starter with server and client, refactors the lit-library starter and its tests, updates workspace dependency catalogs and NOTICE files, wires starter packaging/build/CI for mcp-app, normalizes starter/source links, restructures site integrations/navigation, and refreshes repo documentation including a new Skills page. ChangesRepository updates and new starter
Estimated code review effort🎯 4 (Complex) | ⏱️ ~60 minutes Suggested reviewers
🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (2 warnings)
✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Comment |
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
projects/starters/lit-library/package.json (1)
97-103: 🧹 Nitpick | 🔵 Trivial | ⚡ Quick winWireit test glob mismatch: no
*.test.*.tssources currently
wireit.build.filesexcludes!src/**/*.test.*.ts, butwireit.test.filesonly trackssrc/**/*.test.ts.- No files matching
*.test.*.tsexist underprojects/starters/lit-library/srcright now, so the stale-cache scenario described isn’t currently triggered.- Optional: if you expect future
*.test.<variant>.tsfiles (e.g.,*.test.browser.ts), addsrc/**/*.test.*.tstowireit.test.files.Suggested (optional) patch
"test": { "command": "vitest run", "files": [ "src/**/*.test.ts", + "src/**/*.test.*.ts", "tsconfig.json", "vite.config.ts", "vitest.config.ts" ],🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/lit-library/package.json` around lines 97 - 103, The Wireit config is excluding patterns for variant tests but test input globs don't match them: update the Wireit config so wireit.test.files includes the broader pattern (add "src/**/*.test.*.ts" to wireit.test.files) or remove the exclusion "!src/**/*.test.*.ts" from wireit.build.files; locate the entries named wireit.build.files and wireit.test.files in package.json and either add "src/**/*.test.*.ts" to the test.files array or drop the build.files exclusion to keep both lists consistent.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@projects/starters/go/src/index.html`:
- Line 24: Update the repository links so all point to the GitHub tree path:
locate the anchor href attributes inside the nve-button elements (the <a
href="..."> tags) that currently use GitLab-style "/-/tree" URLs (the ones
around where Line 30 and Line 44 are) and replace their href values with
https://github.com/NVIDIA/elements/tree/main/projects/starters/go so they match
the existing GitHub link at the anchor on Line 24.
---
Outside diff comments:
In `@projects/starters/lit-library/package.json`:
- Around line 97-103: The Wireit config is excluding patterns for variant tests
but test input globs don't match them: update the Wireit config so
wireit.test.files includes the broader pattern (add "src/**/*.test.*.ts" to
wireit.test.files) or remove the exclusion "!src/**/*.test.*.ts" from
wireit.build.files; locate the entries named wireit.build.files and
wireit.test.files in package.json and either add "src/**/*.test.*.ts" to the
test.files array or drop the build.files exclusion to keep both lists
consistent.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Enterprise
Run ID: fb4d778d-ff35-4749-9a37-c1816862bc7f
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (18)
NOTICE.mdpnpm-workspace.yamlprojects/cli/NOTICE.mdprojects/cli/package.jsonprojects/code/NOTICE.mdprojects/core/NOTICE.mdprojects/forms/NOTICE.mdprojects/internals/tools/src/project/starters.tsprojects/internals/vite/package.jsonprojects/lint/NOTICE.mdprojects/markdown/NOTICE.mdprojects/media/NOTICE.mdprojects/monaco/NOTICE.mdprojects/starters/go/src/index.htmlprojects/starters/lit-library/index.htmlprojects/starters/lit-library/package.jsonprojects/starters/lit-library/src/login/login.test.tsprojects/starters/lit-library/vite.config.ts
1c24a68 to
36aa44a
Compare
There was a problem hiding this comment.
Actionable comments posted: 3
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@README.md`:
- Line 84: The sentence "To learn in detail how the repo is built and run see
our [build system documentation](...)" is awkward and missing punctuation;
update it to clear, grammatically correct wording and avoid informal "repo".
Replace with something like: "To learn how the repository is built and run, see
our build system documentation." Keep the existing link target to BUILD.md and
ensure the punctuation and capitalization match Vale linting rules for
README.md.
- Line 57: The sentence in README.md contains duplicated/awkward wording
("coming from development from a different repository"); update that
troubleshooting sentence to a cleaner phrasing such as "If you are coming from a
different repository" or "If you are switching from a different repository" so
the sentence reads smoothly and passes Vale linting; locate and replace the
exact sentence shown in the diff to keep the rest of the paragraph intact.
- Around line 38-40: Replace the platform-specific "brew install git-lfs"
instruction with platform-neutral guidance: either add OS-specific alternatives
(e.g., apt/yum/choco/powershell commands) or replace it with a link to the
official Git LFS install docs, and keep the subsequent "git lfs install" and
"git lfs pull" steps unchanged; ensure the updated README entry removes any
macOS/Homebrew assumption and conforms to Vale linting rules for markdown.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Enterprise
Run ID: a7de90a4-ae51-4108-9118-ea6345e94cc6
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (11)
NOTICE.mdREADME.mdpnpm-workspace.yamlprojects/code/NOTICE.mdprojects/core/NOTICE.mdprojects/forms/NOTICE.mdprojects/internals/vite/package.jsonprojects/lint/NOTICE.mdprojects/markdown/NOTICE.mdprojects/media/NOTICE.mdprojects/monaco/NOTICE.md
36aa44a to
f507cfc
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@README.md`:
- Line 147: Update the PR example label format in README.md to use the
repository's configured label naming convention: replace occurrences of
`scope:core` with `scope(core)` (e.g., "type:fix and scope(core)") so the
example matches the actual labels and Vale linting expectations; ensure any
other PR labeling examples in the same file use the `scope(...)` form
consistently.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Enterprise
Run ID: 9b9ef192-3fd6-4b48-a62c-937b0c3e9c00
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (12)
NOTICE.mdREADME.mdpnpm-workspace.yamlprojects/code/NOTICE.mdprojects/core/NOTICE.mdprojects/forms/NOTICE.mdprojects/internals/vite/package.jsonprojects/lint/NOTICE.mdprojects/markdown/NOTICE.mdprojects/media/NOTICE.mdprojects/monaco/NOTICE.mdprojects/starters/go/src/index.html
f507cfc to
e3c3d62
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
♻️ Duplicate comments (1)
README.md (1)
38-40:⚠️ Potential issue | 🟠 Major | ⚡ Quick winMake Git LFS setup platform-neutral for contributors.
brew install git-lfsassumes macOS + Homebrew and can block Linux/Windows setup. Add OS-specific alternatives or link to official install docs beforegit lfs install.Suggested doc update
# install required dependencies -brew install git-lfs +# Install Git LFS: https://git-lfs.com/ (choose your OS/package manager) git lfs install git lfs pullAs per coding guidelines, documentation files (
*.md) must follow Vale linting rules.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README.md` around lines 38 - 40, Replace the macOS-specific step "brew install git-lfs" with a platform-neutral instruction: point contributors to the official Git LFS installation docs (or list OS-specific alternatives such as apt/apt-get for Debian/Ubuntu and Chocolatey/PowerShell for Windows) before running "git lfs install" and "git lfs pull"; update the README entries for the three commands (brew install git-lfs, git lfs install, git lfs pull) accordingly and ensure the updated markdown adheres to the repository Vale linting rules.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@README.md`:
- Line 147: Update the README example label from the incorrect literal
`type:fix` to the repository's actual label format `type(fix)` in the sentence
that shows how to apply labels (the example containing `type:fix` and
`scope(core)`); edit the example text so it reads `type(fix)` alongside
`scope(core)` to match existing label conventions.
---
Duplicate comments:
In `@README.md`:
- Around line 38-40: Replace the macOS-specific step "brew install git-lfs" with
a platform-neutral instruction: point contributors to the official Git LFS
installation docs (or list OS-specific alternatives such as apt/apt-get for
Debian/Ubuntu and Chocolatey/PowerShell for Windows) before running "git lfs
install" and "git lfs pull"; update the README entries for the three commands
(brew install git-lfs, git lfs install, git lfs pull) accordingly and ensure the
updated markdown adheres to the repository Vale linting rules.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Enterprise
Run ID: fa3d39fe-ecb5-40f9-925b-111625413c17
⛔ Files ignored due to path filters (1)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yaml
📒 Files selected for processing (19)
NOTICE.mdREADME.mdpnpm-workspace.yamlprojects/cli/NOTICE.mdprojects/cli/package.jsonprojects/code/NOTICE.mdprojects/core/NOTICE.mdprojects/forms/NOTICE.mdprojects/internals/tools/src/project/starters.tsprojects/internals/vite/package.jsonprojects/lint/NOTICE.mdprojects/markdown/NOTICE.mdprojects/media/NOTICE.mdprojects/monaco/NOTICE.mdprojects/starters/go/src/index.htmlprojects/starters/lit-library/index.htmlprojects/starters/lit-library/package.jsonprojects/starters/lit-library/src/login/login.test.tsprojects/starters/lit-library/vite.config.ts
| eslint: 'catalog:' | ||
| fast-uri: 3.1.2 | ||
| liquidjs: 10.26.0 | ||
| tmp: 0.2.6 |
There was a problem hiding this comment.
most of these overrides are to bump for security patches flagged by gh scanning
| "output": [], | ||
| "dependencies": [ | ||
| "build", | ||
| "../../internals/testing:build" |
There was a problem hiding this comment.
removing reliance on internal modules so it can be easily exported via the cli starters
| <div nve-layout="row gap:xs"> | ||
| <a nve-text="body sm" target="_blank" href="https://NVIDIA.github.io/elements/docs/integrations/go/">Documentation</a> | ||
| <a nve-text="body sm" target="_blank" href="https://github.com/NVIDIA/elements/-/tree/main/projects/starters/go">Source</a> | ||
| <a nve-text="body sm" target="_blank" href="https://github.com/NVIDIA/elements/tree/main/projects/starters/go">Source</a> |
There was a problem hiding this comment.
incorrect url paths from git migration
e3c3d62 to
dfd2fdc
Compare
There was a problem hiding this comment.
Actionable comments posted: 7
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@projects/site/src/_11ty/layouts/common.js`:
- Around line 134-142: The Getting Started nve-tree-node currently expands when
data.page.url includes '/docs/metrics/'—remove the
data.page.url.includes('/docs/metrics/') check from the expansion condition on
the Getting Started nve-tree-node so the node no longer expands for Metrics
pages (leave the other includes checks for '/docs/integrations/installation/',
'/docs/cli/', '/docs/mcp/', '/docs/skills/', '/docs/lint/' intact); this ensures
Metrics stays handled only by the About section's nve-tree-node highlighting.
In `@projects/site/src/docs/skills/index.md`:
- Around line 142-146: The list items starting with "Use ..." in the MCP tools
bullets (skills_get, api_get, api_list, api_template_validate, examples_list,
examples_get, api_imports_get, project_setup, project_validate) are repetitive;
update one or two bullets to vary sentence openings (for example, change "Use
`api_get`, `api_list`, and `api_template_validate` for current component
contracts" to "Refer to `api_get`, `api_list`, and `api_template_validate` for
current component contracts" or change "Use `examples_list` and `examples_get`
for known UI patterns" to "Consult `examples_list` and `examples_get` to
discover known UI patterns") so the lines no longer all start with "Use" and
satisfy Vale linting/style rules.
In `@projects/site/src/index.11tydata.js`:
- Line 112: The starterSource value uses a GitLab-style "/-/tree/" path which
will break GitHub links; update the template for the starterSource property to
use the GitHub tree format by replacing "/-/tree/" with "/tree/" so the URL
becomes `${ELEMENTS_REPO_BASE_URL}/tree/main/projects/starters/mcp-app`; locate
the starterSource assignment in the file (the starterSource key) and change the
path string accordingly.
In `@projects/starters/mcp-app/package.json`:
- Line 8: The dev script in package.json uses npm which mixes package managers;
update the "dev" script entry named "dev" to invoke pnpm for build (replace the
npm run build call with pnpm run build) while keeping the subsequent inspector
invocation (npx `@modelcontextprotocol/inspector`@0.21.2 node ./dist/main.js)
unchanged so the script remains "pnpm run build && npx
`@modelcontextprotocol/inspector`@0.21.2 node ./dist/main.js".
In `@projects/starters/mcp-app/server.ts`:
- Line 13: callCount is declared module-global and must be scoped per server
instance; move the let callCount = 0; declaration inside createServer() so each
call to createServer() gets its own counter, and remove or replace the top-level
declaration. Update any handlers/closures that reference callCount (e.g., the
request handler or the route logic around where callCount is
incremented/checked) to use the newly scoped variable inside createServer();
ensure exports/use of createServer remain unchanged.
In `@projects/starters/mcp-app/src/mcp-app.css`:
- Line 12: The body CSS rule uses width: 100vw which can cause horizontal
overflow; replace that declaration in the body selector with width: 100% (or
inline-size: 100%) and remove or avoid forcing viewport units there to prevent
the horizontal scroll gutter—update the rule that currently contains "width:
100vw;" accordingly and verify layout still fills the viewport without adding
overflow-x.
In `@projects/starters/mcp-app/tsconfig.server.json`:
- Around line 6-7: The tsconfig.server.json currently enables browser DOM
typings via the "lib" array ("ESNext", "DOM"); remove "DOM" from the "lib" array
so server compilation only uses server/environment types (e.g., change the "lib"
value to just ["ESNext"]) to avoid accidental DOM globals leaking into server
files like main.ts and server.ts.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Enterprise
Run ID: 9c34b943-d09d-4b4c-863b-218cd25045af
⛔ Files ignored due to path filters (3)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlprojects/site/public/static/images/integrations/lit.svgis excluded by!**/*.svgprojects/site/public/static/images/integrations/preact.svgis excluded by!**/*.svg
📒 Files selected for processing (40)
NOTICE.mdREADME.mdpackage.jsonpnpm-workspace.yamlprojects/code/NOTICE.mdprojects/core/NOTICE.mdprojects/forms/NOTICE.mdprojects/internals/tools/src/project/starters.test.tsprojects/internals/tools/src/project/starters.tsprojects/internals/vite/package.jsonprojects/lint/NOTICE.mdprojects/markdown/NOTICE.mdprojects/media/NOTICE.mdprojects/monaco/NOTICE.mdprojects/pages/index.jsprojects/site/src/_11ty/layouts/common.jsprojects/site/src/docs/integrations/index.11ty.jsprojects/site/src/docs/integrations/lit-library.mdprojects/site/src/docs/integrations/mcp-apps.mdprojects/site/src/docs/lint/index.mdprojects/site/src/docs/skills/index.mdprojects/site/src/index.11tydata.jsprojects/site/src/starters/index.11ty.jsprojects/starters/README.mdprojects/starters/go/src/index.htmlprojects/starters/mcp-app/.gitignoreprojects/starters/mcp-app/AGENTS.mdprojects/starters/mcp-app/README.mdprojects/starters/mcp-app/eslint.config.jsprojects/starters/mcp-app/main.tsprojects/starters/mcp-app/mcp-app.htmlprojects/starters/mcp-app/package.jsonprojects/starters/mcp-app/server.tsprojects/starters/mcp-app/src/mcp-app.cssprojects/starters/mcp-app/src/mcp-app.tsprojects/starters/mcp-app/src/vite-env.d.tsprojects/starters/mcp-app/tsconfig.jsonprojects/starters/mcp-app/tsconfig.server.jsonprojects/starters/mcp-app/vite.config.tsprojects/starters/package.json
💤 Files with no reviewable changes (1)
- projects/site/src/docs/lint/index.md
74e866a to
d086165
Compare
There was a problem hiding this comment.
♻️ Duplicate comments (5)
README.md (3)
84-84:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winImprove sentence clarity and avoid informal terminology.
The sentence "To learn in detail how the repo is built and run see our..." is missing punctuation, reads awkwardly, and uses informal "repo" instead of "repository".
Suggested wording fix
-To learn in detail how the repo is built and run see our [build system documentation](https://github.com/NVIDIA/elements/blob/main/projects/internals/BUILD.md). +To learn how the repository is built and run in detail, see our [build system documentation](https://github.com/NVIDIA/elements/blob/main/projects/internals/BUILD.md).As per coding guidelines, documentation files (
*.md) must follow Vale linting rules.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README.md` at line 84, Rewrite the sentence in README.md to be clearer and more formal: replace "repo" with "repository", add necessary punctuation (e.g., a colon or comma before the link) and terminate with a period; for example, "To learn in detail how the repository is built and run, see our [build system documentation](https://github.com/NVIDIA/elements/blob/main/projects/internals/BUILD.md)." Ensure the updated sentence complies with Vale linting rules for documentation.
147-147:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winUpdate label format to match repository conventions.
The example uses
type:fixbut the repository's label naming convention istype(fix)with parentheses, not colons.Suggested doc fix
-Open a new [Pull Request](https://github.com/NVIDIA/elements/pulls) in GitHub. Request review from the team members and apply the appropriate labels in the GitHub UI, for example, `type:fix` and `scope(core)`. +Open a new [Pull Request](https://github.com/NVIDIA/elements/pulls) in GitHub. Request review from the team members and apply the appropriate labels in the GitHub UI, for example, `type(fix)` and `scope(core)`.As per coding guidelines, documentation files (
*.md) must follow Vale linting rules.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README.md` at line 147, Replace the incorrect label example `type:fix` with the repository-standard `type(fix)` in the README example and ensure other label examples (e.g., `scope(core)`) use parentheses rather than colons so they match the repo's label naming convention and Vale linting rules; update the text to show `type(fix)` (and any similar label tokens) everywhere they appear.
57-57:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winFix duplicated/awkward wording in troubleshooting sentence.
The sentence "If you are coming from development from a different repository" contains duplicated wording that reads awkwardly and may fail Vale linting.
Suggested wording fix
-If you are coming from development from a different repository, you may need to install a new version of node in `nvm`. +If you are switching from a different repository, you may need to install a new Node.js version in `nvm`.As per coding guidelines, documentation files (
*.md) must follow Vale linting rules.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@README.md` at line 57, The sentence in README.md contains duplicated/awkward wording ("If you are coming from development from a different repository"); update that sentence to a clear phrasing (e.g., "If you are coming from a different repository" or "If you are coming from development in a different repository") and ensure the rest of the sentence remains unchanged (retain references to nvm, the link, and the instruction to re-run the setup/install step). Locate the sentence in the same paragraph and replace only the duplicated phrase so the file passes Vale linting.projects/site/src/docs/skills/index.md (1)
142-146: 🧹 Nitpick | 🔵 Trivial | ⚡ Quick winVary sentence openings to improve readability.
Five consecutive bullet points begin with "Use", which creates repetitive prose and will fail Vale style linting.
Suggested rewording
-- Use `skills_get` for workflow guidance. -- Use `api_get`, `api_list`, and `api_template_validate` for current component contracts. -- Use `examples_list` and `examples_get` for known UI patterns. -- Use `api_imports_get` to generate explicit `define.js` imports. -- Use `project_setup` and `project_validate` for project health. +- Retrieve workflow guidance with `skills_get`. +- Inspect current component contracts using `api_get`, `api_list`, and `api_template_validate`. +- Discover known UI patterns with `examples_list` and `examples_get`. +- Generate explicit `define.js` imports using `api_imports_get`. +- Check project health with `project_setup` and `project_validate`.As per coding guidelines, documentation files (
*.md) must follow Vale linting rules.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/site/src/docs/skills/index.md` around lines 142 - 146, The five bullets all start with "Use" which triggers Vale linting; edit the list in projects/site/src/docs/skills/index.md so each item starts with a varied verb or phrasing while preserving the same API names and intent (e.g., "Refer to skills_get for workflow guidance.", "Query api_get, api_list and api_template_validate to inspect current component contracts.", "Consult examples_list and examples_get for known UI patterns.", "Call api_imports_get to generate explicit define.js imports.", "Run project_setup and project_validate to check project health."). Ensure each line still mentions the exact identifiers (skills_get, api_get, api_list, api_template_validate, examples_list, examples_get, api_imports_get, project_setup, project_validate) to avoid breaking references.projects/site/src/_11ty/layouts/common.js (1)
134-134:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winRemove
/docs/metrics/from the Getting Started expansion condition.The Getting Started tree-node expands when
data.page.url.includes('/docs/metrics/'), but Metrics is defined as a child of the About section (line 169), not Getting Started. This causes both sections to expand on the Metrics page.🐛 Proposed fix
- <nve-tree-node ${data.page.url === '/' || data.page.url.includes('/docs/metrics/') || data.page.url.includes('/docs/integrations/installation/') || data.page.url.includes('/docs/cli/') || data.page.url.includes('/docs/mcp/') || data.page.url.includes('/docs/skills/') || data.page.url.includes('/docs/lint/') ? 'expanded' : ''}> + <nve-tree-node ${data.page.url === '/' || data.page.url.includes('/docs/integrations/installation/') || data.page.url.includes('/docs/cli/') || data.page.url.includes('/docs/mcp/') || data.page.url.includes('/docs/skills/') || data.page.url.includes('/docs/lint/') ? 'expanded' : ''}>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/site/src/_11ty/layouts/common.js` at line 134, The expansion condition on the nve-tree-node that controls "Getting Started" currently checks data.page.url.includes('/docs/metrics/'), causing the Metrics page to expand both Getting Started and About; remove '/docs/metrics/' from that condition so the ternary only checks the remaining paths (e.g., '/', '/docs/integrations/installation/', '/docs/cli/', '/docs/mcp/', '/docs/skills/', '/docs/lint/') and keep the conditional logic otherwise unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Duplicate comments:
In `@projects/site/src/_11ty/layouts/common.js`:
- Line 134: The expansion condition on the nve-tree-node that controls "Getting
Started" currently checks data.page.url.includes('/docs/metrics/'), causing the
Metrics page to expand both Getting Started and About; remove '/docs/metrics/'
from that condition so the ternary only checks the remaining paths (e.g., '/',
'/docs/integrations/installation/', '/docs/cli/', '/docs/mcp/', '/docs/skills/',
'/docs/lint/') and keep the conditional logic otherwise unchanged.
In `@projects/site/src/docs/skills/index.md`:
- Around line 142-146: The five bullets all start with "Use" which triggers Vale
linting; edit the list in projects/site/src/docs/skills/index.md so each item
starts with a varied verb or phrasing while preserving the same API names and
intent (e.g., "Refer to skills_get for workflow guidance.", "Query api_get,
api_list and api_template_validate to inspect current component contracts.",
"Consult examples_list and examples_get for known UI patterns.", "Call
api_imports_get to generate explicit define.js imports.", "Run project_setup and
project_validate to check project health."). Ensure each line still mentions the
exact identifiers (skills_get, api_get, api_list, api_template_validate,
examples_list, examples_get, api_imports_get, project_setup, project_validate)
to avoid breaking references.
In `@README.md`:
- Line 84: Rewrite the sentence in README.md to be clearer and more formal:
replace "repo" with "repository", add necessary punctuation (e.g., a colon or
comma before the link) and terminate with a period; for example, "To learn in
detail how the repository is built and run, see our [build system
documentation](https://github.com/NVIDIA/elements/blob/main/projects/internals/BUILD.md)."
Ensure the updated sentence complies with Vale linting rules for documentation.
- Line 147: Replace the incorrect label example `type:fix` with the
repository-standard `type(fix)` in the README example and ensure other label
examples (e.g., `scope(core)`) use parentheses rather than colons so they match
the repo's label naming convention and Vale linting rules; update the text to
show `type(fix)` (and any similar label tokens) everywhere they appear.
- Line 57: The sentence in README.md contains duplicated/awkward wording ("If
you are coming from development from a different repository"); update that
sentence to a clear phrasing (e.g., "If you are coming from a different
repository" or "If you are coming from development in a different repository")
and ensure the rest of the sentence remains unchanged (retain references to nvm,
the link, and the instruction to re-run the setup/install step). Locate the
sentence in the same paragraph and replace only the duplicated phrase so the
file passes Vale linting.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Enterprise
Run ID: 6c21523a-0d6e-4b77-8202-41f752941a3c
⛔ Files ignored due to path filters (3)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlprojects/site/public/static/images/integrations/lit.svgis excluded by!**/*.svgprojects/site/public/static/images/integrations/preact.svgis excluded by!**/*.svg
📒 Files selected for processing (62)
NOTICE.mdREADME.mdconfig/vale/styles/config/vocabularies/Elements/accept.txtpackage.jsonpnpm-workspace.yamlprojects/cli/README.mdprojects/code/NOTICE.mdprojects/core/NOTICE.mdprojects/forms/NOTICE.mdprojects/internals/tools/src/project/starters.test.tsprojects/internals/tools/src/project/starters.tsprojects/internals/vite/package.jsonprojects/lint/NOTICE.mdprojects/markdown/NOTICE.mdprojects/media/NOTICE.mdprojects/monaco/NOTICE.mdprojects/pages/index.jsprojects/site/src/_11ty/layouts/common.jsprojects/site/src/docs/integrations/go.mdprojects/site/src/docs/integrations/hugo.mdprojects/site/src/docs/integrations/index.11ty.jsprojects/site/src/docs/integrations/lit-library.mdprojects/site/src/docs/integrations/mcp-apps.mdprojects/site/src/docs/labs/forms.mdprojects/site/src/docs/lint/index.mdprojects/site/src/docs/skills/index.mdprojects/site/src/index.11tydata.jsprojects/site/src/starters/index.11ty.jsprojects/starters/README.mdprojects/starters/angular/src/app/app.htmlprojects/starters/bundles/src/index.htmlprojects/starters/eleventy/src/_layouts/index.11ty.jsprojects/starters/eleventy/src/index.11ty.jsprojects/starters/go/src/index.htmlprojects/starters/hugo/content/_index.mdprojects/starters/hugo/layouts/baseof.htmlprojects/starters/mcp-app/.gitignoreprojects/starters/mcp-app/AGENTS.mdprojects/starters/mcp-app/README.mdprojects/starters/mcp-app/eslint.config.jsprojects/starters/mcp-app/main.tsprojects/starters/mcp-app/mcp-app.htmlprojects/starters/mcp-app/package.jsonprojects/starters/mcp-app/server.tsprojects/starters/mcp-app/src/mcp-app.cssprojects/starters/mcp-app/src/mcp-app.tsprojects/starters/mcp-app/src/vite-env.d.tsprojects/starters/mcp-app/tsconfig.jsonprojects/starters/mcp-app/tsconfig.server.jsonprojects/starters/mcp-app/vite.config.tsprojects/starters/mpa/src/about/index.htmlprojects/starters/mpa/src/index.htmlprojects/starters/mpa/src/settings/index.htmlprojects/starters/nextjs/src/pages/index.tsxprojects/starters/nuxt/app/layouts/default.vueprojects/starters/nuxt/app/pages/index.vueprojects/starters/package.jsonprojects/starters/react/src/App.tsxprojects/starters/solidjs/src/App.tsxprojects/starters/svelte/src/App.svelteprojects/starters/typescript/src/index.htmlprojects/starters/vue/src/App.vue
💤 Files with no reviewable changes (1)
- projects/site/src/docs/lint/index.md
62bcea0 to
2f8645c
Compare
There was a problem hiding this comment.
Actionable comments posted: 8
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (3)
projects/internals/tools/src/project/starters.ts (1)
22-39:⚠️ Potential issue | 🟠 Major | ⚡ Quick winKeep
Starterexhaustive withstartersData.
startersDataincludeshugo, but the exportedStarterunion still does not. That leaves typed callers unable to request a supported starter throughcreateStarter().♻️ Proposed fix
export type Starter = | 'angular' | 'bundles' | 'eleventy' | 'extensions' | 'go' + | 'hugo' | 'importmaps' | 'lit-library' | 'lit' | 'mcp-app'🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/internals/tools/src/project/starters.ts` around lines 22 - 39, The exported Starter union is missing the 'hugo' member present in startersData, causing type mismatch; update the Starter type (the exported union named Starter in this file) to include 'hugo' so that callers like createStarter() can request the Hugo starter and the type stays exhaustive and consistent with startersData.projects/site/src/index.11tydata.js (1)
57-63:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winFix the Bundles starter source path.
starterSourcenow points toprojects/bundles, but the supplied starter files live underprojects/starters/bundles. This will send users to a broken or wrong source location.Suggested fix
- starterSource: `${ELEMENTS_REPO_BASE_URL}/tree/main/projects/bundles`, + starterSource: `${ELEMENTS_REPO_BASE_URL}/tree/main/projects/starters/bundles`,🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/site/src/index.11tydata.js` around lines 57 - 63, The bundles configuration's starterSource value is pointing to the wrong repo path; update the bundles object entry named starterSource so it uses the starters directory (replace /projects/bundles with /projects/starters/bundles) — locate the bundles object where starterSource is defined and change the template string `${ELEMENTS_REPO_BASE_URL}/tree/main/projects/bundles` to `${ELEMENTS_REPO_BASE_URL}/tree/main/projects/starters/bundles`.projects/starters/README.md (1)
5-17:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winComplete the starter inventory in this README.
Adding
/mcp-appmakes this list look authoritative, but it still omits several starters already present in this repo, including/lit-library,/eleventy,/eleventy-ssr,/hugo,/nuxt, and/svelte. Please sync the list so users do not miss supported starters.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/README.md` around lines 5 - 17, Update the starter inventory list in the README to include the missing starter entries so the list matches the repo contents: add lines for `/lit-library`, `/eleventy`, `/eleventy-ssr`, `/hugo`, `/nuxt`, and `/svelte` using the same bullet format and short descriptive phrasing as the existing entries (e.g., "`/lit-library` - Lit library example", "`/eleventy` - Eleventy static site starter", etc.), keeping punctuation and link style consistent with the other entries such as `/mcp-app` and `/react`.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@projects/cli/package.json`:
- Line 55: The repo has an archiver version mismatch: CLI package.json lists
"archiver": "8.0.0" but the actual archiving code lives in the `@internals/tools`
module (imported/used in projects/internals/tools/src/project/starters.ts where
archiver is invoked as archiver('zip', ...)) which still pins archiver to 7.0.1;
either remove the unused archiver entry from the CLI package.json to avoid a
false mismatch or update projects/internals/tools/package.json to "archiver":
"8.0.0" so the runtime module that calls archiver('zip', ...) uses the intended
version—ensure package.json dependency is changed and run install/build to
verify resolution.
In `@projects/internals/tools/src/project/starters.test.ts`:
- Line 53: Add an assertion that verifies startersData['lit-library'].cli is
true (mirror the existing check for startersData['mcp-app'].cli) so the test
covers the CLI flag change for the lit-library starter; locate the assertion
block in starters.test.ts and add a similar expect(...) for
startersData['lit-library'].cli to ensure the new true value is asserted.
In `@projects/site/src/_11ty/layouts/common.js`:
- Line 438: The header "Starters" button uses
data.page.url.endsWith('docs/integrations/') so it is only selected on the
index; update the condition in the nve-button element (the template expression
using data.page.url) to match all integration pages—for example replace
endsWith('docs/integrations/') with a check that matches the path prefix such as
data.page.url.startsWith('docs/integrations/') or a regex like
/^docs\/integrations(\/|$)/. This change will keep the button selected on both
the integrations index and any /docs/integrations/* detail pages.
In `@projects/site/src/docs/integrations/go.md`:
- Line 20: Replace the unhyphenated compound modifier "Go generated HTML pages"
with the hyphenated form "Go-generated HTML pages" in the docs text (the
sentence containing the phrase "The current simple [Go starter]... enables Go
generated HTML pages with minimal NodeJS/JavaScript ecosystem tooling") so the
copy complies with Vale linting rules for compound modifiers.
In `@projects/site/src/docs/integrations/lit-library.md`:
- Around line 11-13: The docs page uses the shortcodes {% integration
'lit-library' %} and {% installation 'lit-library' %} but there is no
corresponding entry keyed "lit-library" in the siteData.integrations map, so add
a matching integration metadata object for "lit-library" (or create an alias
mapping to an existing entry) in the siteData.integrations structure so the
shortcodes can resolve; ensure the integration object contains the expected
fields used by the shortcodes (name, id/key "lit-library", install
instructions/metadata) and any alias entries if you prefer to map "lit-library"
to an existing integration key.
In `@projects/site/src/docs/labs/forms.md`:
- Line 11: The sentence currently reads "Form associated custom elements" —
update it to the hyphenated compound adjective "Form-associated custom elements"
in the docs text (the string in the docs content you changed), and scan the same
Markdown file for any other occurrences of "Form associated" and hyphenate them
consistently; ensure the change follows Vale linting rules for *.md files and
preserve surrounding punctuation and capitalization.
In `@projects/starters/mcp-app/.gitignore`:
- Around line 1-3: Update the .gitignore alongside the existing entries (dist,
node_modules, .eslintcache) to also ignore Wireit cache artifacts by adding a
new entry ".wireit/" (including the trailing slash) so the generated .wireit
directory is not shown as untracked files.
In `@projects/starters/mcp-app/mcp-app.html`:
- Around line 19-20: The alert initially renders with status="success" causing a
false-positive; change the initial <nve-alert> status to a neutral or loading
state (e.g., remove status or set to "info"/"pending") around the element with
id="greeting" and ensure whatever handler that processes the tool result updates
that <nve-alert> (referencing the nve-alert element or the greeting span) to
status="success" only after a real result arrives; also update the logic tied to
the refresh button (id="refresh-greeting") to reset the alert back to the
neutral/loading status when a new request starts and set it to success on
successful completion.
---
Outside diff comments:
In `@projects/internals/tools/src/project/starters.ts`:
- Around line 22-39: The exported Starter union is missing the 'hugo' member
present in startersData, causing type mismatch; update the Starter type (the
exported union named Starter in this file) to include 'hugo' so that callers
like createStarter() can request the Hugo starter and the type stays exhaustive
and consistent with startersData.
In `@projects/site/src/index.11tydata.js`:
- Around line 57-63: The bundles configuration's starterSource value is pointing
to the wrong repo path; update the bundles object entry named starterSource so
it uses the starters directory (replace /projects/bundles with
/projects/starters/bundles) — locate the bundles object where starterSource is
defined and change the template string
`${ELEMENTS_REPO_BASE_URL}/tree/main/projects/bundles` to
`${ELEMENTS_REPO_BASE_URL}/tree/main/projects/starters/bundles`.
In `@projects/starters/README.md`:
- Around line 5-17: Update the starter inventory list in the README to include
the missing starter entries so the list matches the repo contents: add lines for
`/lit-library`, `/eleventy`, `/eleventy-ssr`, `/hugo`, `/nuxt`, and `/svelte`
using the same bullet format and short descriptive phrasing as the existing
entries (e.g., "`/lit-library` - Lit library example", "`/eleventy` - Eleventy
static site starter", etc.), keeping punctuation and link style consistent with
the other entries such as `/mcp-app` and `/react`.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Enterprise
Run ID: c4b288e1-86c8-4c04-b22d-3ef2d3f359c3
⛔ Files ignored due to path filters (3)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlprojects/site/public/static/images/integrations/lit.svgis excluded by!**/*.svgprojects/site/public/static/images/integrations/preact.svgis excluded by!**/*.svg
📒 Files selected for processing (68)
NOTICE.mdREADME.mdconfig/vale/styles/config/vocabularies/Elements/accept.txtpackage.jsonpnpm-workspace.yamlprojects/cli/NOTICE.mdprojects/cli/README.mdprojects/cli/package.jsonprojects/code/NOTICE.mdprojects/core/NOTICE.mdprojects/forms/NOTICE.mdprojects/internals/tools/src/project/starters.test.tsprojects/internals/tools/src/project/starters.tsprojects/internals/vite/package.jsonprojects/lint/NOTICE.mdprojects/markdown/NOTICE.mdprojects/media/NOTICE.mdprojects/monaco/NOTICE.mdprojects/pages/index.jsprojects/site/src/_11ty/layouts/common.jsprojects/site/src/docs/integrations/go.mdprojects/site/src/docs/integrations/hugo.mdprojects/site/src/docs/integrations/index.11ty.jsprojects/site/src/docs/integrations/lit-library.mdprojects/site/src/docs/integrations/mcp-apps.mdprojects/site/src/docs/labs/forms.mdprojects/site/src/docs/lint/index.mdprojects/site/src/docs/skills/index.mdprojects/site/src/index.11tydata.jsprojects/site/src/starters/index.11ty.jsprojects/starters/README.mdprojects/starters/angular/src/app/app.htmlprojects/starters/bundles/src/index.htmlprojects/starters/eleventy/src/_layouts/index.11ty.jsprojects/starters/eleventy/src/index.11ty.jsprojects/starters/go/src/index.htmlprojects/starters/hugo/content/_index.mdprojects/starters/hugo/layouts/baseof.htmlprojects/starters/lit-library/index.htmlprojects/starters/lit-library/package.jsonprojects/starters/lit-library/src/login/login.test.tsprojects/starters/lit-library/vite.config.tsprojects/starters/mcp-app/.gitignoreprojects/starters/mcp-app/AGENTS.mdprojects/starters/mcp-app/README.mdprojects/starters/mcp-app/eslint.config.jsprojects/starters/mcp-app/main.tsprojects/starters/mcp-app/mcp-app.htmlprojects/starters/mcp-app/package.jsonprojects/starters/mcp-app/server.tsprojects/starters/mcp-app/src/mcp-app.cssprojects/starters/mcp-app/src/mcp-app.tsprojects/starters/mcp-app/src/vite-env.d.tsprojects/starters/mcp-app/tsconfig.jsonprojects/starters/mcp-app/tsconfig.server.jsonprojects/starters/mcp-app/vite.config.tsprojects/starters/mpa/src/about/index.htmlprojects/starters/mpa/src/index.htmlprojects/starters/mpa/src/settings/index.htmlprojects/starters/nextjs/src/pages/index.tsxprojects/starters/nuxt/app/layouts/default.vueprojects/starters/nuxt/app/pages/index.vueprojects/starters/package.jsonprojects/starters/react/src/App.tsxprojects/starters/solidjs/src/App.tsxprojects/starters/svelte/src/App.svelteprojects/starters/typescript/src/index.htmlprojects/starters/vue/src/App.vue
💤 Files with no reviewable changes (1)
- projects/site/src/docs/lint/index.md
2f8645c to
47a6d03
Compare
There was a problem hiding this comment.
Actionable comments posted: 1
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (6)
projects/starters/mpa/src/index.html (1)
19-19:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winButton label says "Gitlab" but links to GitHub.
The button text displays "Gitlab" but the href points to
https://github.com/NVIDIA/elements/. Update the label to "GitHub".🔧 Proposed fix
- <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">Gitlab</a></nve-button> + <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">GitHub</a></nve-button>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/mpa/src/index.html` at line 19, The nve-button shows the wrong label: update the anchor text inside <nve-button container="flat"> from "Gitlab" to "GitHub" so the visible label matches the href (https://github.com/NVIDIA/elements/); locate the <nve-button container="flat"> element and change its inner anchor text accordingly.projects/starters/mpa/src/settings/index.html (1)
19-19:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winButton label says "Gitlab" but links to GitHub.
The button text displays "Gitlab" but the href points to
https://github.com/NVIDIA/elements/. Update the label to "GitHub".🔧 Proposed fix
- <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">Gitlab</a></nve-button> + <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">GitHub</a></nve-button>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/mpa/src/settings/index.html` at line 19, The button label text inside the nve-button element is incorrect: update the anchor text from "Gitlab" to "GitHub" so the visible label matches the href (https://github.com/NVIDIA/elements/); locate the nve-button with container="flat" and change its inner <a> text content accordingly.projects/starters/nextjs/src/pages/index.tsx (1)
19-19:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winButton label says "Gitlab" but links to GitHub.
The button text displays "Gitlab" but the href points to
https://github.com/NVIDIA/elements/. Update the label to "GitHub".🔧 Proposed fix
- <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">Gitlab</a></nve-button> + <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">GitHub</a></nve-button>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/nextjs/src/pages/index.tsx` at line 19, The button label text is incorrect: the <nve-button> contains an anchor whose href points to https://github.com/NVIDIA/elements/ but the visible text reads "Gitlab"; update the anchor text inside the <nve-button> from "Gitlab" to "GitHub" so the label matches the href (locate the <nve-button container="flat"> with the <a href="https://github.com/NVIDIA/elements/" target="_blank"> anchor).projects/starters/mpa/src/about/index.html (1)
19-19:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winButton label says "Gitlab" but links to GitHub.
The button text displays "Gitlab" but the href points to
https://github.com/NVIDIA/elements/. Update the label to "GitHub".🔧 Proposed fix
- <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">Gitlab</a></nve-button> + <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">GitHub</a></nve-button>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/mpa/src/about/index.html` at line 19, The button label text is incorrect: inside the <nve-button> containing the <a href="https://github.com/NVIDIA/elements/" target="_blank"> element update the anchor text from "Gitlab" to "GitHub" so the visible label matches the GitHub link; locate the <nve-button> / <a> markup and replace the inner text accordingly.projects/starters/hugo/layouts/baseof.html (1)
30-32:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winButton label says "Gitlab" but links to GitHub.
Line 31 displays "Gitlab" but the href points to
https://github.com/NVIDIA/elements/. Update the label to "GitHub" for consistency.🔧 Proposed fix
- <nve-button container="flat" - ><a href="https://github.com/NVIDIA/elements/" target="_blank">Gitlab</a></nve-button - > + <nve-button container="flat" + ><a href="https://github.com/NVIDIA/elements/" target="_blank">GitHub</a></nve-button + >🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/hugo/layouts/baseof.html` around lines 30 - 32, The button's visible label inside the nve-button anchor is incorrect ("Gitlab") while its href targets GitHub; update the anchor text to "GitHub" so the label matches the link — locate the nve-button element containing the <a href="https://github.com/NVIDIA/elements/"> and change its inner text from "Gitlab" to "GitHub".projects/starters/nuxt/app/layouts/default.vue (1)
14-16:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winButton label says "Gitlab" but links to GitHub.
The button text displays "Gitlab" but the href points to
https://github.com/NVIDIA/elements/. Update the label to "GitHub".🔧 Proposed fix
<nve-button container="flat" - ><a href="https://github.com/NVIDIA/elements/" target="_blank">Gitlab</a></nve-button + ><a href="https://github.com/NVIDIA/elements/" target="_blank">GitHub</a></nve-button >🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/nuxt/app/layouts/default.vue` around lines 14 - 16, Update the button label inside the <nve-button> component so the visible text matches the destination URL: change the inner text "Gitlab" to "GitHub" for the <nve-button> that contains the anchor with href="https://github.com/NVIDIA/elements/"; keep the existing anchor and target attributes unchanged.
♻️ Duplicate comments (6)
projects/site/src/docs/integrations/go.md (1)
20-20:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winHyphenate compound modifier.
"Go generated" should be "Go-generated" to satisfy Vale linting rules for compound modifiers.
As per coding guidelines "
**/*.{md,ts,tsx}: Documentation files (*.md) and JSDoc comments in TypeScript must follow Vale linting rules".🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/site/src/docs/integrations/go.md` at line 20, Change the compound modifier "Go generated" to a hyphenated form to satisfy Vale rules: find the phrase "Go generated HTML pages" in the docs text and update it to "Go-generated HTML pages" (ensure the hyphenated form appears in the same sentence referencing the Go starter example).projects/site/src/docs/labs/forms.md (1)
11-11:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winHyphenate compound modifiers.
"form associated custom elements" (appears twice) should use hyphens: "form-associated custom elements" to satisfy Vale linting rules.
As per coding guidelines "
**/*.{md,ts,tsx}: Documentation files (*.md) and JSDoc comments in TypeScript must follow Vale linting rules".🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/site/src/docs/labs/forms.md` at line 11, Replace the two occurrences of the phrase "form associated custom elements" with the hyphenated form "form-associated custom elements" in the documentation text (the sentence starting "The forms utility library provides..." and the repeated instance later in that paragraph) so the markdown follows Vale linting rules for compound modifiers.projects/site/src/docs/skills/index.md (1)
142-146:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winVary sentence openings to satisfy Vale linting rules.
Lines 142–146 repeatedly begin with "Use", which violates Google style guide conventions enforced by Vale. As per coding guidelines, documentation must follow Vale linting rules.
♻️ Suggested rewording
- Use `skills_get` for workflow guidance. -- Use `api_get`, `api_list`, and `api_template_validate` for current component contracts. -- Use `examples_list` and `examples_get` for known UI patterns. -- Use `api_imports_get` to generate explicit `define.js` imports. +- Refer to `api_get`, `api_list`, and `api_template_validate` for current component contracts. +- Consult `examples_list` and `examples_get` for known UI patterns. +- Call `api_imports_get` to generate explicit `define.js` imports. - Use `project_setup` and `project_validate` for project health.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/site/src/docs/skills/index.md` around lines 142 - 146, The bullets repeatedly start with the same word "Use", causing Vale lint failures; reword each line so openings vary while keeping the same references (skills_get, api_get, api_list, api_template_validate, examples_list, examples_get, api_imports_get, project_setup, project_validate). For example, start some lines with verbs like "Refer to", "Call", "Consult", "Generate", or "Validate" (e.g., "Refer to skills_get for workflow guidance", "Call api_get, api_list, and api_template_validate for current component contracts", "Consult examples_list and examples_get for known UI patterns", "Generate explicit define.js imports with api_imports_get", "Run project_setup and project_validate for project health"), ensuring meaning is unchanged and Vale linting passes.projects/site/src/_11ty/layouts/common.js (2)
134-134:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winRemove
/docs/metrics/from the Getting Started expansion condition.The Getting Started subtree includes
/docs/metrics/in its expansion condition, but Metrics is a child of the About section (line 169), not Getting Started. This causes both sections to expand on the Metrics page, with Getting Started showing no selected child.🔧 Proposed fix
- <nve-tree-node ${data.page.url === '/' || data.page.url.includes('/docs/metrics/') || data.page.url.includes('/docs/integrations/installation/') || data.page.url.includes('/docs/cli/') || data.page.url.includes('/docs/mcp/') || data.page.url.includes('/docs/skills/') || data.page.url.includes('/docs/lint/') ? 'expanded' : ''}> + <nve-tree-node ${data.page.url === '/' || data.page.url.includes('/docs/integrations/installation/') || data.page.url.includes('/docs/cli/') || data.page.url.includes('/docs/mcp/') || data.page.url.includes('/docs/skills/') || data.page.url.includes('/docs/lint/') ? 'expanded' : ''}>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/site/src/_11ty/layouts/common.js` at line 134, The expansion condition on the nve-tree-node for Getting Started incorrectly includes '/docs/metrics/' so the Getting Started tree expands on the Metrics page; remove the "/docs/metrics/" check from the ternary expression (the conditional that sets 'expanded' on the nve-tree-node) so only the intended paths (e.g., '/', '/docs/integrations/installation/', '/docs/cli/', '/docs/mcp/', '/docs/skills/', '/docs/lint/') cause Getting Started to expand.
438-438:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winAdd selected state to the Starters button for all integration pages.
The Starters button lacks a selected state. It should be marked
selectedwhen viewing any integration page under/docs/integrations/.🎨 Proposed fix
- <nve-button container="flat" class="header-btn"><a href="docs/integrations/">Starters</a></nve-button> + <nve-button container="flat" ${data.page.url.includes('/docs/integrations/') ? 'selected' : ''} class="header-btn"><a href="docs/integrations/">Starters</a></nve-button>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/site/src/_11ty/layouts/common.js` at line 438, The Starters nve-button (class="header-btn", href="docs/integrations/") needs a selected state when the current page path is under /docs/integrations/; update the layout logic in common.js to compute the current page URL (e.g., using page.url or similar template variable) and add the selected attribute/class to the nve-button when currentUrl startsWith('/docs/integrations/') or matches that base path (handle leading/trailing slashes consistently). Make the check reusable for other header buttons and apply the selected attribute only to the button with href "docs/integrations/".projects/site/src/index.11tydata.js (1)
108-115:⚠️ Potential issue | 🟠 Major | ⚡ Quick winAdd a matching
lit-libraryintegration entry.The
mcp-appintegration is complete, butprojects/site/src/docs/integrations/lit-library.mduses{% integration 'lit-library' %}and{% installation 'lit-library' %}shortcodes that expect a correspondingsiteData.integrations['lit-library']entry. Without it, the lit-library doc page will fail to render integration metadata (download links, source URL, demo URL, logo).📦 Proposed fix
Add a
lit-libraryintegration entry alongside the existingextensionsentry:}, + 'lit-library': { + logo: 'lit', + starterDemo: null, + starterDownload: `${ELEMENTS_PAGES_BASE_URL}/starters/download/scoped-registry.zip`, + starterSource: `${ELEMENTS_REPO_BASE_URL}/tree/main/projects/starters/lit-library`, + documentation: 'https://lit.dev', + playgroundURL: null + }, nextjs: {🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/site/src/index.11tydata.js` around lines 108 - 115, The lit-library documentation is referencing siteData.integrations['lit-library'] but there's no corresponding entry in the integrations map (only 'mcp-app' exists), so add a new 'lit-library' object in the same structure as 'mcp-app' inside projects/site/src/index.11tydata.js: include keys logo, starterDemo, starterDownload, starterSource, documentation, and playgroundURL using the same base constants (ELEMENTS_PAGES_BASE_URL and ELEMENTS_REPO_BASE_URL) for URLs so the {% integration 'lit-library' %} and {% installation 'lit-library' %} shortcodes can render download/source/demo/logo metadata.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@projects/internals/tools/package.json`:
- Line 193: The package bump to archiver@8.0.0 is incompatible with the existing
factory-style usage in starters.ts (where you import archiver from 'archiver'
and call archiver('zip', ...)); either pin archiver back to a 7.x release in
package.json or update the starter code to the new class-based API from
`@archiver/archiver` (replace the factory import/call with the new Archiver class
usage), and also verify the CI Node.js runtime meets archiver@8’s minimum
version if you choose to migrate.
---
Outside diff comments:
In `@projects/starters/hugo/layouts/baseof.html`:
- Around line 30-32: The button's visible label inside the nve-button anchor is
incorrect ("Gitlab") while its href targets GitHub; update the anchor text to
"GitHub" so the label matches the link — locate the nve-button element
containing the <a href="https://github.com/NVIDIA/elements/"> and change its
inner text from "Gitlab" to "GitHub".
In `@projects/starters/mpa/src/about/index.html`:
- Line 19: The button label text is incorrect: inside the <nve-button>
containing the <a href="https://github.com/NVIDIA/elements/" target="_blank">
element update the anchor text from "Gitlab" to "GitHub" so the visible label
matches the GitHub link; locate the <nve-button> / <a> markup and replace the
inner text accordingly.
In `@projects/starters/mpa/src/index.html`:
- Line 19: The nve-button shows the wrong label: update the anchor text inside
<nve-button container="flat"> from "Gitlab" to "GitHub" so the visible label
matches the href (https://github.com/NVIDIA/elements/); locate the <nve-button
container="flat"> element and change its inner anchor text accordingly.
In `@projects/starters/mpa/src/settings/index.html`:
- Line 19: The button label text inside the nve-button element is incorrect:
update the anchor text from "Gitlab" to "GitHub" so the visible label matches
the href (https://github.com/NVIDIA/elements/); locate the nve-button with
container="flat" and change its inner <a> text content accordingly.
In `@projects/starters/nextjs/src/pages/index.tsx`:
- Line 19: The button label text is incorrect: the <nve-button> contains an
anchor whose href points to https://github.com/NVIDIA/elements/ but the visible
text reads "Gitlab"; update the anchor text inside the <nve-button> from
"Gitlab" to "GitHub" so the label matches the href (locate the <nve-button
container="flat"> with the <a href="https://github.com/NVIDIA/elements/"
target="_blank"> anchor).
In `@projects/starters/nuxt/app/layouts/default.vue`:
- Around line 14-16: Update the button label inside the <nve-button> component
so the visible text matches the destination URL: change the inner text "Gitlab"
to "GitHub" for the <nve-button> that contains the anchor with
href="https://github.com/NVIDIA/elements/"; keep the existing anchor and target
attributes unchanged.
---
Duplicate comments:
In `@projects/site/src/_11ty/layouts/common.js`:
- Line 134: The expansion condition on the nve-tree-node for Getting Started
incorrectly includes '/docs/metrics/' so the Getting Started tree expands on the
Metrics page; remove the "/docs/metrics/" check from the ternary expression (the
conditional that sets 'expanded' on the nve-tree-node) so only the intended
paths (e.g., '/', '/docs/integrations/installation/', '/docs/cli/',
'/docs/mcp/', '/docs/skills/', '/docs/lint/') cause Getting Started to expand.
- Line 438: The Starters nve-button (class="header-btn",
href="docs/integrations/") needs a selected state when the current page path is
under /docs/integrations/; update the layout logic in common.js to compute the
current page URL (e.g., using page.url or similar template variable) and add the
selected attribute/class to the nve-button when currentUrl
startsWith('/docs/integrations/') or matches that base path (handle
leading/trailing slashes consistently). Make the check reusable for other header
buttons and apply the selected attribute only to the button with href
"docs/integrations/".
In `@projects/site/src/docs/integrations/go.md`:
- Line 20: Change the compound modifier "Go generated" to a hyphenated form to
satisfy Vale rules: find the phrase "Go generated HTML pages" in the docs text
and update it to "Go-generated HTML pages" (ensure the hyphenated form appears
in the same sentence referencing the Go starter example).
In `@projects/site/src/docs/labs/forms.md`:
- Line 11: Replace the two occurrences of the phrase "form associated custom
elements" with the hyphenated form "form-associated custom elements" in the
documentation text (the sentence starting "The forms utility library
provides..." and the repeated instance later in that paragraph) so the markdown
follows Vale linting rules for compound modifiers.
In `@projects/site/src/docs/skills/index.md`:
- Around line 142-146: The bullets repeatedly start with the same word "Use",
causing Vale lint failures; reword each line so openings vary while keeping the
same references (skills_get, api_get, api_list, api_template_validate,
examples_list, examples_get, api_imports_get, project_setup, project_validate).
For example, start some lines with verbs like "Refer to", "Call", "Consult",
"Generate", or "Validate" (e.g., "Refer to skills_get for workflow guidance",
"Call api_get, api_list, and api_template_validate for current component
contracts", "Consult examples_list and examples_get for known UI patterns",
"Generate explicit define.js imports with api_imports_get", "Run project_setup
and project_validate for project health"), ensuring meaning is unchanged and
Vale linting passes.
In `@projects/site/src/index.11tydata.js`:
- Around line 108-115: The lit-library documentation is referencing
siteData.integrations['lit-library'] but there's no corresponding entry in the
integrations map (only 'mcp-app' exists), so add a new 'lit-library' object in
the same structure as 'mcp-app' inside projects/site/src/index.11tydata.js:
include keys logo, starterDemo, starterDownload, starterSource, documentation,
and playgroundURL using the same base constants (ELEMENTS_PAGES_BASE_URL and
ELEMENTS_REPO_BASE_URL) for URLs so the {% integration 'lit-library' %} and {%
installation 'lit-library' %} shortcodes can render download/source/demo/logo
metadata.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Enterprise
Run ID: 605cb01b-4fd6-4604-bd4e-fd9b4a0902f6
⛔ Files ignored due to path filters (3)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlprojects/site/public/static/images/integrations/lit.svgis excluded by!**/*.svgprojects/site/public/static/images/integrations/preact.svgis excluded by!**/*.svg
📒 Files selected for processing (33)
README.mdconfig/vale/styles/config/vocabularies/Elements/accept.txtprojects/cli/README.mdprojects/internals/tools/package.jsonprojects/internals/tools/src/project/starters.test.tsprojects/site/src/_11ty/layouts/common.jsprojects/site/src/docs/integrations/go.mdprojects/site/src/docs/integrations/hugo.mdprojects/site/src/docs/integrations/index.11ty.jsprojects/site/src/docs/integrations/lit-library.mdprojects/site/src/docs/integrations/mcp-apps.mdprojects/site/src/docs/labs/forms.mdprojects/site/src/docs/lint/index.mdprojects/site/src/docs/skills/index.mdprojects/site/src/index.11tydata.jsprojects/site/src/starters/index.11ty.jsprojects/starters/angular/src/app/app.htmlprojects/starters/bundles/src/index.htmlprojects/starters/eleventy/src/_layouts/index.11ty.jsprojects/starters/eleventy/src/index.11ty.jsprojects/starters/hugo/content/_index.mdprojects/starters/hugo/layouts/baseof.htmlprojects/starters/mpa/src/about/index.htmlprojects/starters/mpa/src/index.htmlprojects/starters/mpa/src/settings/index.htmlprojects/starters/nextjs/src/pages/index.tsxprojects/starters/nuxt/app/layouts/default.vueprojects/starters/nuxt/app/pages/index.vueprojects/starters/react/src/App.tsxprojects/starters/solidjs/src/App.tsxprojects/starters/svelte/src/App.svelteprojects/starters/typescript/src/index.htmlprojects/starters/vue/src/App.vue
💤 Files with no reviewable changes (1)
- projects/site/src/docs/lint/index.md
47a6d03 to
713ce6b
Compare
There was a problem hiding this comment.
♻️ Duplicate comments (3)
projects/site/src/docs/integrations/go.md (1)
20-20:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winHyphenate the compound modifier.
"Go generated HTML pages" should be "Go-generated HTML pages" to follow Vale linting rules for compound modifiers.
✍️ Proposed fix
-The current simple [Go starter]({{ELEMENTS_REPO_BASE_URL}}/tree/main/projects/starters/go) provides an example of a basic Go web server leveraging the pre-built JS and CSS bundles. This enables Go generated HTML pages with minimal NodeJS/JavaScript ecosystem tooling. +The current simple [Go starter]({{ELEMENTS_REPO_BASE_URL}}/tree/main/projects/starters/go) provides an example of a basic Go web server leveraging the pre-built JS and CSS bundles. This enables Go-generated HTML pages with minimal NodeJS/JavaScript ecosystem tooling.As per coding guidelines, documentation files must follow Vale linting rules (Google style guide).
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/site/src/docs/integrations/go.md` at line 20, Update the compound modifier in the sentence that currently reads "Go generated HTML pages" to use a hyphen: change it to "Go-generated HTML pages" in the docs string (the phrase "Go generated HTML pages" in the Go integration doc), ensuring the Markdown text around the existing "Go starter" link remains unchanged so Vale linting passes.projects/site/src/_11ty/layouts/common.js (1)
438-438:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winAdd selected state to the Starters header button.
The button has no
selectedattribute logic, so it won't highlight when users are on integration pages. Other header buttons usedata.page.url.includes(...)to set the selected state.🔧 Proposed fix
- <nve-button container="flat" class="header-btn"><a href="docs/integrations/">Starters</a></nve-button> + <nve-button container="flat" ${data.page.url.includes('/docs/integrations/') ? 'selected' : ''} class="header-btn"><a href="docs/integrations/">Starters</a></nve-button>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/site/src/_11ty/layouts/common.js` at line 438, The Starters header nve-button lacks the selected attribute, so add the same selected logic other header buttons use: set selected based on data.page.url.includes('docs/integrations') (or 'integrations' if other buttons use that substring) so the button highlights on integration pages; update the nve-button element (the one wrapping the <a href="docs/integrations/">Starters</a>) to include selected driven by data.page.url.includes(...) to match the existing pattern.projects/site/src/docs/integrations/lit-library.md (1)
11-13:⚠️ Potential issue | 🟠 Major | ⚡ Quick winAdd
lit-libraryintegration metadata tositeData.integrations
projects/site/src/index.11tydata.jsdefinessiteData.integrations(viaconst integrations = { ... }) but there is nolit-libraryentry.projects/site/src/docs/integrations/shortcodes.jsrenders{% integration 'lit-library' %}only whensiteData.integrations[integration]?.logoexists; otherwise it returns''. So the Lit Library page will currently render no logo/buttons (Playground/Demo/Download/Source/Documentation).{% installation 'lit-library' %}doesn’t depend onsiteData.integrations; it just uses the passedstarterstring for the genericnve project.create --type=...snippet.Add a
lit-librarykey toconst integrations = { ... }inprojects/site/src/index.11tydata.jswith the expected fields (at leastlogo, and the relevant URLs).🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/site/src/docs/integrations/lit-library.md` around lines 11 - 13, Add a new "lit-library" entry to the const integrations object (the integrations definition that becomes siteData.integrations in projects/site/src/index.11tydata.js) so siteData.integrations['lit-library'] contains at minimum a logo property and the relevant URLs (playground/demo/download/source/documentation) expected by the shortcodes renderer in projects/site/src/docs/integrations/shortcodes.js; ensure the key name is exactly "lit-library" and include fields used by the renderer (logo and the URL fields it checks) so the integration shortcode renders the logo and buttons.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Duplicate comments:
In `@projects/site/src/_11ty/layouts/common.js`:
- Line 438: The Starters header nve-button lacks the selected attribute, so add
the same selected logic other header buttons use: set selected based on
data.page.url.includes('docs/integrations') (or 'integrations' if other buttons
use that substring) so the button highlights on integration pages; update the
nve-button element (the one wrapping the <a
href="docs/integrations/">Starters</a>) to include selected driven by
data.page.url.includes(...) to match the existing pattern.
In `@projects/site/src/docs/integrations/go.md`:
- Line 20: Update the compound modifier in the sentence that currently reads "Go
generated HTML pages" to use a hyphen: change it to "Go-generated HTML pages" in
the docs string (the phrase "Go generated HTML pages" in the Go integration
doc), ensuring the Markdown text around the existing "Go starter" link remains
unchanged so Vale linting passes.
In `@projects/site/src/docs/integrations/lit-library.md`:
- Around line 11-13: Add a new "lit-library" entry to the const integrations
object (the integrations definition that becomes siteData.integrations in
projects/site/src/index.11tydata.js) so siteData.integrations['lit-library']
contains at minimum a logo property and the relevant URLs
(playground/demo/download/source/documentation) expected by the shortcodes
renderer in projects/site/src/docs/integrations/shortcodes.js; ensure the key
name is exactly "lit-library" and include fields used by the renderer (logo and
the URL fields it checks) so the integration shortcode renders the logo and
buttons.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Enterprise
Run ID: e317e28b-61fc-431d-bc13-dfc600a818aa
⛔ Files ignored due to path filters (3)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlprojects/site/public/static/images/integrations/lit.svgis excluded by!**/*.svgprojects/site/public/static/images/integrations/preact.svgis excluded by!**/*.svg
📒 Files selected for processing (35)
README.mdconfig/vale/styles/config/vocabularies/Elements/accept.txtprojects/cli/README.mdprojects/internals/tools/package.jsonprojects/internals/tools/src/declarations.d.tsprojects/internals/tools/src/project/starters.test.tsprojects/internals/tools/src/project/starters.tsprojects/site/src/_11ty/layouts/common.jsprojects/site/src/docs/integrations/go.mdprojects/site/src/docs/integrations/hugo.mdprojects/site/src/docs/integrations/index.11ty.jsprojects/site/src/docs/integrations/lit-library.mdprojects/site/src/docs/integrations/mcp-apps.mdprojects/site/src/docs/labs/forms.mdprojects/site/src/docs/lint/index.mdprojects/site/src/docs/skills/index.mdprojects/site/src/index.11tydata.jsprojects/site/src/starters/index.11ty.jsprojects/starters/angular/src/app/app.htmlprojects/starters/bundles/src/index.htmlprojects/starters/eleventy/src/_layouts/index.11ty.jsprojects/starters/eleventy/src/index.11ty.jsprojects/starters/hugo/content/_index.mdprojects/starters/hugo/layouts/baseof.htmlprojects/starters/mpa/src/about/index.htmlprojects/starters/mpa/src/index.htmlprojects/starters/mpa/src/settings/index.htmlprojects/starters/nextjs/src/pages/index.tsxprojects/starters/nuxt/app/layouts/default.vueprojects/starters/nuxt/app/pages/index.vueprojects/starters/react/src/App.tsxprojects/starters/solidjs/src/App.tsxprojects/starters/svelte/src/App.svelteprojects/starters/typescript/src/index.htmlprojects/starters/vue/src/App.vue
💤 Files with no reviewable changes (1)
- projects/site/src/docs/lint/index.md
- enable lit library starter for CLI - fix broken go starter links Signed-off-by: Cory Rylan <crylan@nvidia.com>
713ce6b to
1c25a51
Compare
There was a problem hiding this comment.
Actionable comments posted: 3
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (5)
projects/starters/bundles/src/index.html (1)
27-27: 🧹 Nitpick | 🔵 Trivial | ⚡ Quick winUpdate button label to match GitHub migration.
The button label still says "Gitlab" while the URLs have been migrated to GitHub. The Go starter was updated to "GitHub", but this file was not. Consider updating for consistency across starters.
🔧 Suggested fix
- <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">Gitlab</a></nve-button> + <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">GitHub</a></nve-button>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/bundles/src/index.html` at line 27, The nve-button in index.html still displays the label "Gitlab" while the link points to GitHub; update the button's visible text by changing the anchor content inside the <nve-button container="flat"> element from "Gitlab" to "GitHub" so the label matches the migrated URL and other starters.projects/starters/eleventy/src/_layouts/index.11ty.js (1)
23-23: 🧹 Nitpick | 🔵 Trivial | ⚡ Quick winUpdate button label to match GitHub migration.
The button label still says "Gitlab" while the URLs have been migrated to GitHub. The Go starter was updated to "GitHub", but this file was not. Consider updating for consistency across all starters.
🔧 Suggested fix
- <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">Gitlab</a></nve-button> + <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">GitHub</a></nve-button>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/eleventy/src/_layouts/index.11ty.js` at line 23, Update the button label text from "Gitlab" to "GitHub" in the nve-button instance that renders the external repo link (the element with container="flat" and the anchor href "https://github.com/NVIDIA/elements/"); locate the <nve-button> containing the <a> tag and change its visible text content to "GitHub" so it matches the migrated URLs and other starters.projects/starters/angular/src/app/app.html (1)
14-14: 🧹 Nitpick | 🔵 Trivial | ⚡ Quick winUpdate button label to match GitHub migration.
The button label still says "Gitlab" while the URLs have been migrated to GitHub. The Go starter was updated to "GitHub" on line 24, but this file was not. Consider updating for consistency.
🔧 Suggested fix
<nve-button container="flat" - ><a href="https://github.com/NVIDIA/elements/" target="_blank">Gitlab</a></nve-button + ><a href="https://github.com/NVIDIA/elements/" target="_blank">GitHub</a></nve-button >🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/angular/src/app/app.html` at line 14, The anchor inside the HTML template currently renders the label "Gitlab" (the <a href="https://github.com/NVIDIA/elements/" target="_blank">Gitlab</a> node) but the URL and other starters use "GitHub"; update the anchor text to "GitHub" so the visible button label matches the migrated GitHub links and the Go starter's change.projects/starters/mpa/src/about/index.html (1)
19-19:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winLink text says "Gitlab" but points to GitHub.
The button text reads "Gitlab" but the URL points to
https://github.com/NVIDIA/elements/. This appears in unchanged code across multiple starters. Consider updating the text to "GitHub" in a follow-up for consistency.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/mpa/src/about/index.html` at line 19, The anchor inside the <nve-button container="flat"> currently displays "Gitlab" but links to https://github.com/NVIDIA/elements/; update the anchor text to "GitHub" so the visible label matches the destination — locate the <nve-button> element with its nested <a href="https://github.com/NVIDIA/elements/"> and change the link text accordingly.projects/site/src/index.11tydata.js (1)
45-191:⚠️ Potential issue | 🟠 Major | ⚡ Quick winAdd missing
lit-libraryintegration entry.The integration metadata includes
mcp-appbut is missinglit-library. The docs pageprojects/site/src/docs/integrations/lit-library.mdreferences this key in its shortcodes (lines 11, 13), which will fail to resolve integration and installation metadata.📦 Proposed fix
Add the
lit-libraryentry after thelitentry:lit: { logo: 'lit', starterDemo: null, starterDownload: null, starterSource: null, documentation: 'https://lit.dev', playgroundURL: await PlaygroundService.create({ template: '<nve-alert status="success">Elements + Lit</nve-alert>', type: 'lit' }) }, + 'lit-library': { + logo: 'lit', + starterDemo: null, + starterDownload: `${ELEMENTS_PAGES_BASE_URL}/starters/download/lit-library.zip`, + starterSource: `${ELEMENTS_REPO_BASE_URL}/tree/main/projects/starters/lit-library`, + documentation: 'https://lit.dev/docs/tools/publishing/', + playgroundURL: null + }, 'mcp-app': {🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/site/src/index.11tydata.js` around lines 45 - 191, The integrations object is missing a 'lit-library' key referenced by docs shortcodes; add a new entry named 'lit-library' adjacent to the existing 'lit' entry inside the integrations object, providing at least logo ('lit'), documentation ('https://lit.dev'), and a playgroundURL created via PlaygroundService.create (similar to the existing lit entry, e.g. a distinct template and type 'lit'); ensure starterDemo/starterDownload/starterSource fields are set appropriately (null or the correct URLs) so lookups in the integrations map resolve without errors.
♻️ Duplicate comments (7)
projects/site/src/docs/labs/forms.md (1)
11-11:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winHyphenate compound modifiers per past review.
The phrase "form associated custom elements" appears twice and should be "form-associated custom elements" to comply with Vale linting rules. This issue was flagged in a previous review but remains unresolved.
📝 Suggested fix
-The forms utility library provides a base mixin to make it easy to create form associated custom elements. Form associated custom elements enable components to integrate with form value state and validation. This creates a reliable and predictable API contract for components. This project is in the early stages of exploration. [Project Source]({{ELEMENTS_REPO_BASE_URL}}/tree/main/projects/forms) +The forms utility library provides a base mixin to make it easy to create form-associated custom elements. Form-associated custom elements enable components to integrate with form value state and validation. This creates a reliable and predictable API contract for components. This project is in the early stages of exploration. [Project Source]({{ELEMENTS_REPO_BASE_URL}}/tree/main/projects/forms)As per coding guidelines "
**/*.md: Follow the Google developer documentation style guide and write-good rules using Vale prose linter".🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/site/src/docs/labs/forms.md` at line 11, Replace the unhyphenated phrase "form associated custom elements" with the hyphenated form "form-associated custom elements" everywhere it appears (both occurrences shown in the diff) to satisfy the Vale linter and Google doc style; update the text in the docs/labs/forms.md content where the phrase appears (e.g., the sentence starting "The forms utility library provides..." and the following sentence) so both instances use "form-associated custom elements".projects/site/src/docs/integrations/go.md (1)
20-20:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winHyphenate compound modifier per past review.
The phrase "Go generated HTML pages" should be "Go-generated HTML pages" to comply with Vale linting rules for compound modifiers. This issue was flagged in a previous review but remains unresolved.
📝 Suggested fix
-The current simple [Go starter]({{ELEMENTS_REPO_BASE_URL}}/tree/main/projects/starters/go) provides an example of a basic Go web server leveraging the pre-built JS and CSS bundles. This enables Go generated HTML pages with minimal NodeJS/JavaScript ecosystem tooling. +The current simple [Go starter]({{ELEMENTS_REPO_BASE_URL}}/tree/main/projects/starters/go) provides an example of a basic Go web server leveraging the pre-built JS and CSS bundles. This enables Go-generated HTML pages with minimal NodeJS/JavaScript ecosystem tooling.As per coding guidelines "
**/*.md: Follow the Google developer documentation style guide and write-good rules using Vale prose linter".🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/site/src/docs/integrations/go.md` at line 20, Replace the unhyphenated compound modifier "Go generated HTML pages" with the hyphenated form "Go-generated HTML pages" in the markdown content (look for the exact phrase "Go generated HTML pages" in the text of the Go integration docs) to satisfy the Vale lint rule for compound modifiers.projects/starters/mcp-app/server.ts (1)
13-13:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winScope
callCountper server instance.
callCountis module-global, so multiplecreateServer()instances share one counter. Move it insidecreateServer()and pass a counter callback tocreateGreeting().🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/mcp-app/server.ts` at line 13, callCount is currently a module-global shared across all servers; move the declaration of callCount inside createServer() so each server instance has its own counter, then change createGreeting() to accept a counter callback (e.g., getNextCount or increment) and pass that callback from createServer() so createGreeting() increments the per-instance counter rather than the shared module variable; update all call sites of createGreeting() accordingly.projects/starters/mcp-app/src/mcp-app.css (1)
12-12:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winAvoid
100vwonbodyto prevent horizontal overflow.
width: 100vwadds a horizontal scroll gutter on platforms with non-overlay scrollbars. Preferwidth: 100%(orinline-size: 100%).🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/mcp-app/src/mcp-app.css` at line 12, The body rule currently uses width: 100vw which can cause horizontal overflow on platforms with non-overlay scrollbars; update the CSS rule (the selector that contains the line "width: 100vw") to use width: 100% or inline-size: 100% instead to prevent a horizontal scroll gutter while preserving full-width layout.projects/starters/mcp-app/mcp-app.html (1)
19-20:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winInitial alert should not present a success state.
Before any tool result arrives,
status="success"announces a false-positive to assistive tech. Use a neutral/loading state initially and switch to success only after a real result is set inmcp-app.ts.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/mcp-app/mcp-app.html` around lines 19 - 20, The nve-alert currently uses status="success" on initial render which is misleading; change the initial attribute on the <nve-alert> element (the one wrapping the <span id="greeting">) to a neutral or loading state (e.g., status="neutral" or status="loading") and ensure mcp-app.ts updates that same nve-alert's status to "success" only after a real tool result is received (update the logic that currently sets the greeting text to also toggle the alert's status). Also check any event handler wired to the <nve-button id="refresh-greeting"> so it does not force a success state before real data is present.projects/site/src/docs/skills/index.md (1)
142-146:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winPast concern remains: Repetitive sentence openings in MCP tools list.
Lines 142-146 all begin with "Use...", which trips style linting. Vary one or two openings for better flow.
♻️ Suggested variation
- Use `skills_get` for workflow guidance. -- Use `api_get`, `api_list`, and `api_template_validate` for current component contracts. +- Refer to `api_get`, `api_list`, and `api_template_validate` for current component contracts. - Use `examples_list` and `examples_get` for known UI patterns. -- Use `api_imports_get` to generate explicit `define.js` imports. +- Call `api_imports_get` to generate explicit `define.js` imports. - Use `project_setup` and `project_validate` for project health.As per coding guidelines, documentation files (
**/*.md) must follow Vale linting rules.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/site/src/docs/skills/index.md` around lines 142 - 146, The list items all start with "Use..." which violates Vale linting for repetitive sentence openings; edit the four or five bullet lines referencing skills_get, api_get, api_list, api_template_validate, examples_list, examples_get, api_imports_get, project_setup, and project_validate to vary the openings (e.g., "Call skills_get...", "Refer to api_get/ api_list...", "Consult examples_list...", "Generate imports with api_imports_get...", "Run project_setup and project_validate...") so the meaning stays the same but sentence openings differ and the MD file passes Vale rules.projects/site/src/_11ty/layouts/common.js (1)
438-438:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winAdd selection logic to the Starters header button.
The "Starters" header button should show a
selectedstate when users are viewing integration pages, matching the pattern used by other header buttons. Currently, it has no selection logic, creating an inconsistency in the header navigation.🎯 Proposed fix
Add selection logic similar to other header buttons:
- <nve-button container="flat" class="header-btn"><a href="docs/integrations/">Starters</a></nve-button> + <nve-button container="flat" ${data.page.url.includes('/docs/integrations/') ? 'selected' : ''} class="header-btn"><a href="docs/integrations/">Starters</a></nve-button>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/site/src/_11ty/layouts/common.js` at line 438, The Starters header button lacks selection logic; update the nve-button element (container="flat" class="header-btn" href="docs/integrations/") to include the same selected-state check used by other header buttons by setting its selected attribute when the current page URL/path is within the integrations section (e.g., when the template's currentUrl or page.url startsWith '/docs/integrations' or matches the integrations collection). Locate the selection pattern used by other buttons in this layout (look for other nve-button elements that compute selected) and apply the identical conditional expression so the Starters button renders selected on integration pages.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@projects/cli/README.md`:
- Line 81: Split the long compound sentence "This detects your package manager,
configures the MCP server for Cursor, Codex, and Claude Code, and adds Elements
core dependencies to the project." into 2–3 shorter sentences (e.g., one
sentence about detecting the package manager, one about configuring the MCP
server for Cursor/Codex/Claude Code, and one about adding Elements core
dependencies) to improve readability and satisfy Vale linting rules for
README.md.
In `@projects/site/src/_11ty/layouts/common.js`:
- Line 146: The "Getting Started" tree node uses
data.page.url.endsWith('/docs/integrations/') so only the integrations index is
highlighted; change the condition on data.page.url used in the <nve-tree-node>
for that node (the one rendering "Getting Started") to test the page path prefix
instead (e.g., use startsWith '/docs/integrations/') so the parent node remains
highlighted for all integration detail pages like '/docs/integrations/angular/'
rather than only the index.
In `@projects/starters/lit-library/src/login/login.test.ts`:
- Around line 77-82: The recursive retry in elementIsStable should be replaced
with an iterative loop for clarity: in the async function
elementIsStable(element: DomainLogin, attemptsRemaining = 10) use a while
(attemptsRemaining-- > 0) (or for) loop that awaits element.updateComplete each
iteration and returns when it becomes truthy; after the loop throw the same
Error('Element did not stabilize'). Ensure you preserve awaiting
element.updateComplete and the default attemptsRemaining behavior while removing
the recursive call.
---
Outside diff comments:
In `@projects/site/src/index.11tydata.js`:
- Around line 45-191: The integrations object is missing a 'lit-library' key
referenced by docs shortcodes; add a new entry named 'lit-library' adjacent to
the existing 'lit' entry inside the integrations object, providing at least logo
('lit'), documentation ('https://lit.dev'), and a playgroundURL created via
PlaygroundService.create (similar to the existing lit entry, e.g. a distinct
template and type 'lit'); ensure starterDemo/starterDownload/starterSource
fields are set appropriately (null or the correct URLs) so lookups in the
integrations map resolve without errors.
In `@projects/starters/angular/src/app/app.html`:
- Line 14: The anchor inside the HTML template currently renders the label
"Gitlab" (the <a href="https://github.com/NVIDIA/elements/"
target="_blank">Gitlab</a> node) but the URL and other starters use "GitHub";
update the anchor text to "GitHub" so the visible button label matches the
migrated GitHub links and the Go starter's change.
In `@projects/starters/bundles/src/index.html`:
- Line 27: The nve-button in index.html still displays the label "Gitlab" while
the link points to GitHub; update the button's visible text by changing the
anchor content inside the <nve-button container="flat"> element from "Gitlab" to
"GitHub" so the label matches the migrated URL and other starters.
In `@projects/starters/eleventy/src/_layouts/index.11ty.js`:
- Line 23: Update the button label text from "Gitlab" to "GitHub" in the
nve-button instance that renders the external repo link (the element with
container="flat" and the anchor href "https://github.com/NVIDIA/elements/");
locate the <nve-button> containing the <a> tag and change its visible text
content to "GitHub" so it matches the migrated URLs and other starters.
In `@projects/starters/mpa/src/about/index.html`:
- Line 19: The anchor inside the <nve-button container="flat"> currently
displays "Gitlab" but links to https://github.com/NVIDIA/elements/; update the
anchor text to "GitHub" so the visible label matches the destination — locate
the <nve-button> element with its nested <a
href="https://github.com/NVIDIA/elements/"> and change the link text
accordingly.
---
Duplicate comments:
In `@projects/site/src/_11ty/layouts/common.js`:
- Line 438: The Starters header button lacks selection logic; update the
nve-button element (container="flat" class="header-btn"
href="docs/integrations/") to include the same selected-state check used by
other header buttons by setting its selected attribute when the current page
URL/path is within the integrations section (e.g., when the template's
currentUrl or page.url startsWith '/docs/integrations' or matches the
integrations collection). Locate the selection pattern used by other buttons in
this layout (look for other nve-button elements that compute selected) and apply
the identical conditional expression so the Starters button renders selected on
integration pages.
In `@projects/site/src/docs/integrations/go.md`:
- Line 20: Replace the unhyphenated compound modifier "Go generated HTML pages"
with the hyphenated form "Go-generated HTML pages" in the markdown content (look
for the exact phrase "Go generated HTML pages" in the text of the Go integration
docs) to satisfy the Vale lint rule for compound modifiers.
In `@projects/site/src/docs/labs/forms.md`:
- Line 11: Replace the unhyphenated phrase "form associated custom elements"
with the hyphenated form "form-associated custom elements" everywhere it appears
(both occurrences shown in the diff) to satisfy the Vale linter and Google doc
style; update the text in the docs/labs/forms.md content where the phrase
appears (e.g., the sentence starting "The forms utility library provides..." and
the following sentence) so both instances use "form-associated custom elements".
In `@projects/site/src/docs/skills/index.md`:
- Around line 142-146: The list items all start with "Use..." which violates
Vale linting for repetitive sentence openings; edit the four or five bullet
lines referencing skills_get, api_get, api_list, api_template_validate,
examples_list, examples_get, api_imports_get, project_setup, and
project_validate to vary the openings (e.g., "Call skills_get...", "Refer to
api_get/ api_list...", "Consult examples_list...", "Generate imports with
api_imports_get...", "Run project_setup and project_validate...") so the meaning
stays the same but sentence openings differ and the MD file passes Vale rules.
In `@projects/starters/mcp-app/mcp-app.html`:
- Around line 19-20: The nve-alert currently uses status="success" on initial
render which is misleading; change the initial attribute on the <nve-alert>
element (the one wrapping the <span id="greeting">) to a neutral or loading
state (e.g., status="neutral" or status="loading") and ensure mcp-app.ts updates
that same nve-alert's status to "success" only after a real tool result is
received (update the logic that currently sets the greeting text to also toggle
the alert's status). Also check any event handler wired to the <nve-button
id="refresh-greeting"> so it does not force a success state before real data is
present.
In `@projects/starters/mcp-app/server.ts`:
- Line 13: callCount is currently a module-global shared across all servers;
move the declaration of callCount inside createServer() so each server instance
has its own counter, then change createGreeting() to accept a counter callback
(e.g., getNextCount or increment) and pass that callback from createServer() so
createGreeting() increments the per-instance counter rather than the shared
module variable; update all call sites of createGreeting() accordingly.
In `@projects/starters/mcp-app/src/mcp-app.css`:
- Line 12: The body rule currently uses width: 100vw which can cause horizontal
overflow on platforms with non-overlay scrollbars; update the CSS rule (the
selector that contains the line "width: 100vw") to use width: 100% or
inline-size: 100% instead to prevent a horizontal scroll gutter while preserving
full-width layout.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Enterprise
Run ID: 73a3c41e-c17a-4e1a-b602-2b3285e3f191
⛔ Files ignored due to path filters (3)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlprojects/site/public/static/images/integrations/lit.svgis excluded by!**/*.svgprojects/site/public/static/images/integrations/preact.svgis excluded by!**/*.svg
📒 Files selected for processing (69)
NOTICE.mdREADME.mdconfig/vale/styles/config/vocabularies/Elements/accept.txtpackage.jsonpnpm-workspace.yamlprojects/cli/NOTICE.mdprojects/cli/README.mdprojects/cli/package.jsonprojects/code/NOTICE.mdprojects/core/NOTICE.mdprojects/internals/tools/package.jsonprojects/internals/tools/src/declarations.d.tsprojects/internals/tools/src/project/starters.test.tsprojects/internals/tools/src/project/starters.tsprojects/internals/vite/package.jsonprojects/lint/NOTICE.mdprojects/markdown/NOTICE.mdprojects/media/NOTICE.mdprojects/monaco/NOTICE.mdprojects/pages/index.jsprojects/site/src/_11ty/layouts/common.jsprojects/site/src/docs/integrations/go.mdprojects/site/src/docs/integrations/hugo.mdprojects/site/src/docs/integrations/index.11ty.jsprojects/site/src/docs/integrations/lit-library.mdprojects/site/src/docs/integrations/mcp-apps.mdprojects/site/src/docs/labs/forms.mdprojects/site/src/docs/lint/index.mdprojects/site/src/docs/skills/index.mdprojects/site/src/index.11tydata.jsprojects/site/src/starters/index.11ty.jsprojects/starters/README.mdprojects/starters/angular/src/app/app.htmlprojects/starters/bundles/src/index.htmlprojects/starters/eleventy/src/_layouts/index.11ty.jsprojects/starters/eleventy/src/index.11ty.jsprojects/starters/go/src/index.htmlprojects/starters/hugo/content/_index.mdprojects/starters/hugo/layouts/baseof.htmlprojects/starters/lit-library/index.htmlprojects/starters/lit-library/package.jsonprojects/starters/lit-library/src/login/login.test.tsprojects/starters/lit-library/vite.config.tsprojects/starters/mcp-app/.gitignoreprojects/starters/mcp-app/AGENTS.mdprojects/starters/mcp-app/README.mdprojects/starters/mcp-app/eslint.config.jsprojects/starters/mcp-app/main.tsprojects/starters/mcp-app/mcp-app.htmlprojects/starters/mcp-app/package.jsonprojects/starters/mcp-app/server.tsprojects/starters/mcp-app/src/mcp-app.cssprojects/starters/mcp-app/src/mcp-app.tsprojects/starters/mcp-app/src/vite-env.d.tsprojects/starters/mcp-app/tsconfig.jsonprojects/starters/mcp-app/tsconfig.server.jsonprojects/starters/mcp-app/vite.config.tsprojects/starters/mpa/src/about/index.htmlprojects/starters/mpa/src/index.htmlprojects/starters/mpa/src/settings/index.htmlprojects/starters/nextjs/src/pages/index.tsxprojects/starters/nuxt/app/layouts/default.vueprojects/starters/nuxt/app/pages/index.vueprojects/starters/package.jsonprojects/starters/react/src/App.tsxprojects/starters/solidjs/src/App.tsxprojects/starters/svelte/src/App.svelteprojects/starters/typescript/src/index.htmlprojects/starters/vue/src/App.vue
💤 Files with no reviewable changes (1)
- projects/site/src/docs/lint/index.md
Signed-off-by: Cory Rylan <crylan@nvidia.com>
1c25a51 to
35bb798
Compare
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (12)
projects/starters/nextjs/src/pages/index.tsx (1)
19-19:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winButton label "Gitlab" conflicts with GitHub destination.
Line 19 displays "Gitlab" but links to
github.com/NVIDIA/elements/. For complete source URL normalization, update the button text to "GitHub".🔧 Suggested fix
- <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">Gitlab</a></nve-button> + <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">GitHub</a></nve-button>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/nextjs/src/pages/index.tsx` at line 19, Update the button label inside the <nve-button container="flat"> that wraps the anchor linking to https://github.com/NVIDIA/elements/ from "Gitlab" to "GitHub" so the displayed text matches the destination URL (locate the <nve-button container="flat"> element containing the <a href="https://github.com/NVIDIA/elements/"> link and change its inner text).projects/starters/mpa/src/index.html (1)
19-19:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winButton label "Gitlab" conflicts with GitHub destination.
Line 19 displays "Gitlab" but links to
github.com/NVIDIA/elements/. For complete source URL normalization, update the button text to "GitHub".🔧 Suggested fix
- <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">Gitlab</a></nve-button> + <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">GitHub</a></nve-button>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/mpa/src/index.html` at line 19, The button label text inside the <nve-button container="flat"> element is incorrect: it reads "Gitlab" while the anchor href points to GitHub; update the anchor text to "GitHub" (keeping the existing href="https://github.com/NVIDIA/elements/" and target="_blank") so the visible label matches the destination.projects/starters/mpa/src/settings/index.html (1)
19-19:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winButton label "Gitlab" conflicts with GitHub destination.
Line 19 displays "Gitlab" but links to
github.com/NVIDIA/elements/. For complete source URL normalization, update the button text to "GitHub".🔧 Suggested fix
- <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">Gitlab</a></nve-button> + <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">GitHub</a></nve-button>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/mpa/src/settings/index.html` at line 19, The button label on the nve-button element is inconsistent with its href: update the anchor text inside the nve-button (the <a href="https://github.com/NVIDIA/elements/" target="_blank">…</a> node) from "Gitlab" to "GitHub" so the visible label matches the GitHub destination and normalizes the source URL display.projects/starters/nuxt/app/layouts/default.vue (1)
15-15:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winButton label "Gitlab" conflicts with GitHub destination.
Line 15 displays "Gitlab" but links to
github.com/NVIDIA/elements/. For complete source URL normalization, update the button text to "GitHub".🔧 Suggested fix
- ><a href="https://github.com/NVIDIA/elements/" target="_blank">Gitlab</a></nve-button + ><a href="https://github.com/NVIDIA/elements/" target="_blank">GitHub</a></nve-button🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/nuxt/app/layouts/default.vue` at line 15, Update the button text that currently reads "Gitlab" to "GitHub" where the anchor inside the nve-button (the element containing href="https://github.com/NVIDIA/elements/") is rendered; locate the template node (the nve-button / <a> with that GitHub URL) in layouts/default.vue and replace the visible label string "Gitlab" with "GitHub" so the button text matches the destination.projects/starters/hugo/layouts/baseof.html (1)
31-31:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winButton label "Gitlab" conflicts with GitHub destination.
Line 31 displays "Gitlab" but links to
github.com/NVIDIA/elements/. For complete normalization, update the button text to "GitHub".🔧 Suggested fix
- ><a href="https://github.com/NVIDIA/elements/" target="_blank">Gitlab</a></nve-button + ><a href="https://github.com/NVIDIA/elements/" target="_blank">GitHub</a></nve-button🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/hugo/layouts/baseof.html` at line 31, The anchor in baseof.html currently shows the label "Gitlab" but links to the GitHub repo; update the anchor text inside the nve-button element (the <a ...> element that targets "https://github.com/NVIDIA/elements/") to read "GitHub" so the visible label matches the destination.projects/starters/react/src/App.tsx (1)
17-17:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winMisleading link label: "Gitlab" points to GitHub.
The button is labeled "Gitlab" but the URL points to
https://github.com/NVIDIA/elements/. The label should read "GitHub" to match the actual destination.📝 Proposed fix
- <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">Gitlab</a></nve-button> + <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">GitHub</a></nve-button>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/react/src/App.tsx` at line 17, Update the mislabeled link text inside the App component: change the anchor text inside the <nve-button container="flat"> element from "Gitlab" to "GitHub" so the visible label matches the destination URL (https://github.com/NVIDIA/elements/); locate the anchor within the App.tsx JSX and replace the text node only.projects/starters/svelte/src/App.svelte (1)
16-16:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winMisleading link label: "Gitlab" points to GitHub.
The button is labeled "Gitlab" but the URL points to
https://github.com/NVIDIA/elements/. The label should read "GitHub" to match the actual destination.📝 Proposed fix
- <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">Gitlab</a></nve-button> + <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">GitHub</a></nve-button>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/svelte/src/App.svelte` at line 16, The button label text is incorrect: inside the <nve-button> element the anchor currently shows "Gitlab" but links to GitHub; update the anchor text to "GitHub" to match the href (https://github.com/NVIDIA/elements/) so the visible label and destination align (locate the <nve-button> containing the <a> element in App.svelte and change its inner text).projects/starters/solidjs/src/App.tsx (1)
17-17:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winMisleading link label: "Gitlab" points to GitHub.
The button is labeled "Gitlab" but the URL points to
https://github.com/NVIDIA/elements/. The label should read "GitHub" to match the actual destination.📝 Proposed fix
- <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">Gitlab</a></nve-button> + <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">GitHub</a></nve-button>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/solidjs/src/App.tsx` at line 17, The nve-button in App.tsx currently displays the text "Gitlab" while its anchor href points to GitHub; update the button label to match the destination (change the visible text inside the <nve-button> anchor from "Gitlab" to "GitHub") so the link label correctly reflects the URL for the nve-button element containing the anchor to https://github.com/NVIDIA/elements/.projects/starters/typescript/src/index.html (1)
17-17:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winMisleading link label: "Gitlab" points to GitHub.
The button is labeled "Gitlab" but the URL points to
https://github.com/NVIDIA/elements/. The label should read "GitHub" to match the actual destination.📝 Proposed fix
- <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">Gitlab</a></nve-button> + <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">GitHub</a></nve-button>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/typescript/src/index.html` at line 17, Update the mislabeled link text inside the UI element: change the anchor text "Gitlab" to "GitHub" within the <nve-button container="flat"> anchor so the visible label matches the href (https://github.com/NVIDIA/elements/); locate the <nve-button> containing the <a> tag and correct its inner text.projects/starters/vue/src/App.vue (1)
17-17:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winMisleading link label: "Gitlab" points to GitHub.
The button is labeled "Gitlab" but the URL points to
https://github.com/NVIDIA/elements/. The label should read "GitHub" to match the actual destination.📝 Proposed fix
- <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">Gitlab</a></nve-button> + <nve-button container="flat"><a href="https://github.com/NVIDIA/elements/" target="_blank">GitHub</a></nve-button>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/vue/src/App.vue` at line 17, The nve-button contains an anchor whose text label "Gitlab" is incorrect for the href pointing to https://github.com/NVIDIA/elements/; update the anchor text inside the nve-button (the <a> element nested in nve-button) to read "GitHub" so the label matches the destination (or if you intended GitLab, change the href accordingly).projects/internals/tools/src/project/starters.ts (1)
22-39:⚠️ Potential issue | 🟠 Major | ⚡ Quick winAdd
'hugo'to the exportedStarterunion to matchstartersData.
startersDataincludeshugo, andcreateStarter(starter: Starter, ...)is typed toStarter, but the exportedStarterunion omits'hugo', breaking the public type contract for typed callers.♻️ Proposed fix
export type Starter = | 'angular' | 'bundles' | 'eleventy' | 'extensions' | 'go' + | 'hugo' | 'importmaps' | 'lit-library' | 'lit' | 'mcp-app' | 'nextjs'🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/internals/tools/src/project/starters.ts` around lines 22 - 39, The exported Starter union is missing 'hugo', causing a mismatch with startersData and createStarter(starter: Starter, ...); update the Starter type declaration to include the 'hugo' literal so callers can pass 'hugo' without a type error; locate the Starter type in starters.ts and add 'hugo' to the union alongside the other entries to restore consistency with startersData and createStarter.projects/site/src/index.11tydata.js (1)
57-63:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winFix the Bundles source path.
starterSourcepoints atprojects/bundles, but this starter lives underprojects/starters/bundlesin the rest of the repo context, so the public Source button will 404.Suggested fix
- starterSource: `${ELEMENTS_REPO_BASE_URL}/tree/main/projects/bundles`, + starterSource: `${ELEMENTS_REPO_BASE_URL}/tree/main/projects/starters/bundles`,🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/site/src/index.11tydata.js` around lines 57 - 63, starterSource is pointing to the wrong repo path and causes a 404; update the value of the starterSource property so it references projects/starters/bundles instead of projects/bundles (i.e. build the URL using ELEMENTS_REPO_BASE_URL and the path /tree/main/projects/starters/bundles) so the public "Source" button links to the correct starter location.
♻️ Duplicate comments (6)
projects/site/src/docs/labs/forms.md (1)
11-11:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winHyphenate compound modifiers "form associated" in documentation.
The phrases "form associated custom elements" and "Form associated custom elements" should use hyphens: "form-associated custom elements" and "Form-associated custom elements" to follow Vale linting rules.
Suggested fix
-The forms utility library provides a base mixin to make it easy to create form associated custom elements. Form associated custom elements enable components to integrate with form value state and validation. This creates a reliable and predictable API contract for components. This project is in the early stages of exploration. [Project Source]({{ELEMENTS_REPO_BASE_URL}}/tree/main/projects/forms) +The forms utility library provides a base mixin to make it easy to create form-associated custom elements. Form-associated custom elements enable components to integrate with form value state and validation. This creates a reliable and predictable API contract for components. This project is in the early stages of exploration. [Project Source]({{ELEMENTS_REPO_BASE_URL}}/tree/main/projects/forms)As per coding guidelines "
**/*.md: Follow the Google developer documentation style guide and write-good rules using Vale prose linter".🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/site/src/docs/labs/forms.md` at line 11, Update the documentation to hyphenate the compound modifier "form associated": replace occurrences of "form associated custom elements" with "form-associated custom elements" and "Form associated custom elements" with "Form-associated custom elements" in the affected markdown so it conforms to Vale/google docs rules; search for those exact phrases in the file and make the replacements everywhere (preserve surrounding capitalization and spacing).projects/site/src/docs/integrations/go.md (1)
20-20:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winHyphenate compound modifier "Go generated" in documentation.
The phrase "Go generated HTML pages" should be "Go-generated HTML pages" to follow Vale linting rules for compound modifiers.
Suggested fix
-The current simple [Go starter]({{ELEMENTS_REPO_BASE_URL}}/tree/main/projects/starters/go) provides an example of a basic Go web server leveraging the pre-built JS and CSS bundles. This enables Go generated HTML pages with minimal NodeJS/JavaScript ecosystem tooling. +The current simple [Go starter]({{ELEMENTS_REPO_BASE_URL}}/tree/main/projects/starters/go) provides an example of a basic Go web server leveraging the pre-built JS and CSS bundles. This enables Go-generated HTML pages with minimal NodeJS/JavaScript ecosystem tooling.As per coding guidelines "
**/*.md: Follow the Google developer documentation style guide and write-good rules using Vale prose linter".🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/site/src/docs/integrations/go.md` at line 20, Replace the unhyphenated compound modifier "Go generated HTML pages" with the hyphenated form "Go-generated HTML pages" in the sentence that describes the Go starter example (the line containing "The current simple [Go starter]... provides an example..."). Update the phrase within that sentence so it conforms to Vale linting and the Google documentation style guide.projects/starters/mcp-app/tsconfig.server.json (1)
6-7:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winRemove
DOMfrom server TypeScript configuration.The server compilation includes
"DOM"in thelibarray, but server entrypoints (main.ts,server.ts) should not require browser DOM types. Removing"DOM"improves server-side type safety by preventing accidental references to browser-only globals.♻️ Proposed fix
- "lib": ["ESNext", "DOM"], + "lib": ["ESNext"],🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/mcp-app/tsconfig.server.json` around lines 6 - 7, Remove the browser DOM typings from the server TypeScript config: edit tsconfig.server.json and remove "DOM" from the "lib" array (leaving "ESNext" or other server libs) so server compilation for entrypoints like main.ts and server.ts does not include browser globals; update the "lib" array to only include server-appropriate libs and run a quick typecheck to ensure no unintended DOM references remain.projects/starters/mcp-app/package.json (1)
8-8:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winUse
pnpm run buildin the dev script for workspace consistency.The dev script invokes
npm run build, but this is a pnpm workspace. While the npx usage for@modelcontextprotocol/inspectormay be intentional (similar to the workaround inprojects/cli/package.json), the build step should usepnpm run buildto avoid mixing package managers.♻️ Proposed fix
- "dev": "npm run build && npx `@modelcontextprotocol/inspector`@0.21.2 node ./dist/main.js", + "dev": "pnpm run build && npx `@modelcontextprotocol/inspector`@0.21.2 node ./dist/main.js",Based on learnings, run
pnpm run buildinprojects/starters/mcp-appafter HTML, TypeScript, CSS, or Vite changes.🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/starters/mcp-app/package.json` at line 8, Update the dev script in package.json to use the pnpm runner instead of npm: replace the current "dev" script that calls "npm run build && npx `@modelcontextprotocol/inspector`@0.21.2 node ./dist/main.js" so the build step uses "pnpm run build" while keeping the npx inspector invocation unchanged; edit the "dev" script entry to call pnpm for the build to maintain workspace package manager consistency.projects/site/src/_11ty/layouts/common.js (2)
134-142:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winDon't expand Getting Started on Metrics pages.
/docs/metrics/is already owned by the About section below, so keeping it here expands two top-level groups and leaves Getting Started with no selected child.Suggested fix
- <nve-tree-node ${data.page.url === '/' || data.page.url.includes('/docs/metrics/') || data.page.url.includes('/docs/integrations/installation/') || data.page.url.includes('/docs/cli/') || data.page.url.includes('/docs/mcp/') || data.page.url.includes('/docs/skills/') || data.page.url.includes('/docs/lint/') ? 'expanded' : ''}> + <nve-tree-node ${data.page.url === '/' || data.page.url.includes('/docs/integrations/installation/') || data.page.url.includes('/docs/cli/') || data.page.url.includes('/docs/mcp/') || data.page.url.includes('/docs/skills/') || data.page.url.includes('/docs/lint/') ? 'expanded' : ''}>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/site/src/_11ty/layouts/common.js` around lines 134 - 142, The Getting Started top-level node is being expanded for metrics pages because the expanded attribute includes data.page.url.includes('/docs/metrics/'); remove that clause from the expanded ternary on the first nve-tree-node so metrics pages no longer expand the Getting Started group, and verify that the About section retains ownership of /docs/metrics/ via its own highlight/selection logic (update any related data.page.url checks if you duplicated the '/docs/metrics/' check elsewhere).
438-438:⚠️ Potential issue | 🟡 Minor | ⚡ Quick winRestore the active state for the Starters header button.
This button no longer renders
selected, so every integrations page loses its active header state.Suggested fix
- <nve-button container="flat" class="header-btn"><a href="docs/integrations/">Starters</a></nve-button> + <nve-button container="flat" ${data.page.url.includes('/docs/integrations/') ? 'selected' : ''} class="header-btn"><a href="docs/integrations/">Starters</a></nve-button>🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@projects/site/src/_11ty/layouts/common.js` at line 438, Restore the active/selected state on the Starters header button by adding the selected attribute back when the current page is an integrations page: modify the header rendering logic (where the nve-button for the Starters link is emitted) to compute an isActive flag from the current page URL/path (e.g., check page.url or location.pathname startsWith '/docs/integrations' or equals '/docs/integrations/') and conditionally include selected on the <nve-button ...> for the link with href="docs/integrations/".
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Outside diff comments:
In `@projects/internals/tools/src/project/starters.ts`:
- Around line 22-39: The exported Starter union is missing 'hugo', causing a
mismatch with startersData and createStarter(starter: Starter, ...); update the
Starter type declaration to include the 'hugo' literal so callers can pass
'hugo' without a type error; locate the Starter type in starters.ts and add
'hugo' to the union alongside the other entries to restore consistency with
startersData and createStarter.
In `@projects/site/src/index.11tydata.js`:
- Around line 57-63: starterSource is pointing to the wrong repo path and causes
a 404; update the value of the starterSource property so it references
projects/starters/bundles instead of projects/bundles (i.e. build the URL using
ELEMENTS_REPO_BASE_URL and the path /tree/main/projects/starters/bundles) so the
public "Source" button links to the correct starter location.
In `@projects/starters/hugo/layouts/baseof.html`:
- Line 31: The anchor in baseof.html currently shows the label "Gitlab" but
links to the GitHub repo; update the anchor text inside the nve-button element
(the <a ...> element that targets "https://github.com/NVIDIA/elements/") to read
"GitHub" so the visible label matches the destination.
In `@projects/starters/mpa/src/index.html`:
- Line 19: The button label text inside the <nve-button container="flat">
element is incorrect: it reads "Gitlab" while the anchor href points to GitHub;
update the anchor text to "GitHub" (keeping the existing
href="https://github.com/NVIDIA/elements/" and target="_blank") so the visible
label matches the destination.
In `@projects/starters/mpa/src/settings/index.html`:
- Line 19: The button label on the nve-button element is inconsistent with its
href: update the anchor text inside the nve-button (the <a
href="https://github.com/NVIDIA/elements/" target="_blank">…</a> node) from
"Gitlab" to "GitHub" so the visible label matches the GitHub destination and
normalizes the source URL display.
In `@projects/starters/nextjs/src/pages/index.tsx`:
- Line 19: Update the button label inside the <nve-button container="flat"> that
wraps the anchor linking to https://github.com/NVIDIA/elements/ from "Gitlab" to
"GitHub" so the displayed text matches the destination URL (locate the
<nve-button container="flat"> element containing the <a
href="https://github.com/NVIDIA/elements/"> link and change its inner text).
In `@projects/starters/nuxt/app/layouts/default.vue`:
- Line 15: Update the button text that currently reads "Gitlab" to "GitHub"
where the anchor inside the nve-button (the element containing
href="https://github.com/NVIDIA/elements/") is rendered; locate the template
node (the nve-button / <a> with that GitHub URL) in layouts/default.vue and
replace the visible label string "Gitlab" with "GitHub" so the button text
matches the destination.
In `@projects/starters/react/src/App.tsx`:
- Line 17: Update the mislabeled link text inside the App component: change the
anchor text inside the <nve-button container="flat"> element from "Gitlab" to
"GitHub" so the visible label matches the destination URL
(https://github.com/NVIDIA/elements/); locate the anchor within the App.tsx JSX
and replace the text node only.
In `@projects/starters/solidjs/src/App.tsx`:
- Line 17: The nve-button in App.tsx currently displays the text "Gitlab" while
its anchor href points to GitHub; update the button label to match the
destination (change the visible text inside the <nve-button> anchor from
"Gitlab" to "GitHub") so the link label correctly reflects the URL for the
nve-button element containing the anchor to https://github.com/NVIDIA/elements/.
In `@projects/starters/svelte/src/App.svelte`:
- Line 16: The button label text is incorrect: inside the <nve-button> element
the anchor currently shows "Gitlab" but links to GitHub; update the anchor text
to "GitHub" to match the href (https://github.com/NVIDIA/elements/) so the
visible label and destination align (locate the <nve-button> containing the <a>
element in App.svelte and change its inner text).
In `@projects/starters/typescript/src/index.html`:
- Line 17: Update the mislabeled link text inside the UI element: change the
anchor text "Gitlab" to "GitHub" within the <nve-button container="flat"> anchor
so the visible label matches the href (https://github.com/NVIDIA/elements/);
locate the <nve-button> containing the <a> tag and correct its inner text.
In `@projects/starters/vue/src/App.vue`:
- Line 17: The nve-button contains an anchor whose text label "Gitlab" is
incorrect for the href pointing to https://github.com/NVIDIA/elements/; update
the anchor text inside the nve-button (the <a> element nested in nve-button) to
read "GitHub" so the label matches the destination (or if you intended GitLab,
change the href accordingly).
---
Duplicate comments:
In `@projects/site/src/_11ty/layouts/common.js`:
- Around line 134-142: The Getting Started top-level node is being expanded for
metrics pages because the expanded attribute includes
data.page.url.includes('/docs/metrics/'); remove that clause from the expanded
ternary on the first nve-tree-node so metrics pages no longer expand the Getting
Started group, and verify that the About section retains ownership of
/docs/metrics/ via its own highlight/selection logic (update any related
data.page.url checks if you duplicated the '/docs/metrics/' check elsewhere).
- Line 438: Restore the active/selected state on the Starters header button by
adding the selected attribute back when the current page is an integrations
page: modify the header rendering logic (where the nve-button for the Starters
link is emitted) to compute an isActive flag from the current page URL/path
(e.g., check page.url or location.pathname startsWith '/docs/integrations' or
equals '/docs/integrations/') and conditionally include selected on the
<nve-button ...> for the link with href="docs/integrations/".
In `@projects/site/src/docs/integrations/go.md`:
- Line 20: Replace the unhyphenated compound modifier "Go generated HTML pages"
with the hyphenated form "Go-generated HTML pages" in the sentence that
describes the Go starter example (the line containing "The current simple [Go
starter]... provides an example..."). Update the phrase within that sentence so
it conforms to Vale linting and the Google documentation style guide.
In `@projects/site/src/docs/labs/forms.md`:
- Line 11: Update the documentation to hyphenate the compound modifier "form
associated": replace occurrences of "form associated custom elements" with
"form-associated custom elements" and "Form associated custom elements" with
"Form-associated custom elements" in the affected markdown so it conforms to
Vale/google docs rules; search for those exact phrases in the file and make the
replacements everywhere (preserve surrounding capitalization and spacing).
In `@projects/starters/mcp-app/package.json`:
- Line 8: Update the dev script in package.json to use the pnpm runner instead
of npm: replace the current "dev" script that calls "npm run build && npx
`@modelcontextprotocol/inspector`@0.21.2 node ./dist/main.js" so the build step
uses "pnpm run build" while keeping the npx inspector invocation unchanged; edit
the "dev" script entry to call pnpm for the build to maintain workspace package
manager consistency.
In `@projects/starters/mcp-app/tsconfig.server.json`:
- Around line 6-7: Remove the browser DOM typings from the server TypeScript
config: edit tsconfig.server.json and remove "DOM" from the "lib" array (leaving
"ESNext" or other server libs) so server compilation for entrypoints like
main.ts and server.ts does not include browser globals; update the "lib" array
to only include server-appropriate libs and run a quick typecheck to ensure no
unintended DOM references remain.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Enterprise
Run ID: 41d7f3d7-b81b-4839-9362-aa388a4069d2
⛔ Files ignored due to path filters (3)
pnpm-lock.yamlis excluded by!**/pnpm-lock.yamlprojects/site/public/static/images/integrations/lit.svgis excluded by!**/*.svgprojects/site/public/static/images/integrations/preact.svgis excluded by!**/*.svg
📒 Files selected for processing (66)
NOTICE.mdREADME.mdconfig/vale/styles/config/vocabularies/Elements/accept.txtpackage.jsonpnpm-workspace.yamlprojects/cli/NOTICE.mdprojects/cli/README.mdprojects/cli/package.jsonprojects/code/NOTICE.mdprojects/core/NOTICE.mdprojects/internals/tools/package.jsonprojects/internals/tools/src/declarations.d.tsprojects/internals/tools/src/project/starters.test.tsprojects/internals/tools/src/project/starters.tsprojects/internals/vite/package.jsonprojects/lint/NOTICE.mdprojects/markdown/NOTICE.mdprojects/media/NOTICE.mdprojects/monaco/NOTICE.mdprojects/pages/index.jsprojects/site/src/_11ty/layouts/common.jsprojects/site/src/docs/integrations/go.mdprojects/site/src/docs/integrations/hugo.mdprojects/site/src/docs/integrations/index.11ty.jsprojects/site/src/docs/integrations/lit-library.mdprojects/site/src/docs/integrations/mcp-apps.mdprojects/site/src/docs/integrations/shortcodes.jsprojects/site/src/docs/labs/forms.mdprojects/site/src/docs/lint/index.mdprojects/site/src/docs/skills/index.mdprojects/site/src/index.11tydata.jsprojects/site/src/starters/index.11ty.jsprojects/starters/README.mdprojects/starters/angular/src/app/app.htmlprojects/starters/bundles/src/index.htmlprojects/starters/eleventy/src/_layouts/index.11ty.jsprojects/starters/eleventy/src/index.11ty.jsprojects/starters/go/src/index.htmlprojects/starters/hugo/content/_index.mdprojects/starters/hugo/layouts/baseof.htmlprojects/starters/mcp-app/.gitignoreprojects/starters/mcp-app/AGENTS.mdprojects/starters/mcp-app/README.mdprojects/starters/mcp-app/eslint.config.jsprojects/starters/mcp-app/main.tsprojects/starters/mcp-app/mcp-app.htmlprojects/starters/mcp-app/package.jsonprojects/starters/mcp-app/server.tsprojects/starters/mcp-app/src/mcp-app.cssprojects/starters/mcp-app/src/mcp-app.tsprojects/starters/mcp-app/src/vite-env.d.tsprojects/starters/mcp-app/tsconfig.jsonprojects/starters/mcp-app/tsconfig.server.jsonprojects/starters/mcp-app/vite.config.tsprojects/starters/mpa/src/about/index.htmlprojects/starters/mpa/src/index.htmlprojects/starters/mpa/src/settings/index.htmlprojects/starters/nextjs/src/pages/index.tsxprojects/starters/nuxt/app/layouts/default.vueprojects/starters/nuxt/app/pages/index.vueprojects/starters/package.jsonprojects/starters/react/src/App.tsxprojects/starters/solidjs/src/App.tsxprojects/starters/svelte/src/App.svelteprojects/starters/typescript/src/index.htmlprojects/starters/vue/src/App.vue
💤 Files with no reviewable changes (1)
- projects/site/src/docs/lint/index.md
Signed-off-by: Cory Rylan <crylan@nvidia.com>
Signed-off-by: Cory Rylan <crylan@nvidia.com>
35bb798 to
510cc7c
Compare
Signed-off-by: Cory Rylan <crylan@nvidia.com>
510cc7c to
b018ed2
Compare
|
🎉 This issue has been resolved in version 0.3.0 🎉 |
|
🎉 This issue has been resolved in version 0.0.10 🎉 |
|
🎉 This issue has been resolved in version 0.2.4 🎉 |
|
🎉 This issue has been resolved in version 0.4.0 🎉 |
Summary by CodeRabbit
New Features
Bug Fixes
Documentation
Chores