Skip to content

feat(cli): enable mcp-app starter support#112

Merged
coryrylan merged 5 commits into
mainfrom
topic-enable-starters
Jun 4, 2026
Merged

feat(cli): enable mcp-app starter support#112
coryrylan merged 5 commits into
mainfrom
topic-enable-starters

Conversation

@coryrylan
Copy link
Copy Markdown
Collaborator

@coryrylan coryrylan commented May 29, 2026

Summary by CodeRabbit

  • New Features

    • Added MCP App starter and Integrations hub (Lit Library, MCP Apps)
    • Added comprehensive Skills documentation for agent tooling
    • Reorganized starters into the Integrations section
  • Bug Fixes

    • Fixed repository source links across starter projects
    • Corrected CDN stylesheet links in Go starter
  • Documentation

    • Expanded README setup/build guidance and CLI docs
    • Added MCP Apps development and Skills guides
  • Chores

    • Updated bundled third‑party notices and bumped tool versions

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 29, 2026

Review Change Stack

Note

Reviews paused

It 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 reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

This 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.

Changes

Repository updates and new starter

Layer / File(s) Summary
Dependency catalogs and NOTICE sync
pnpm-workspace.yaml, NOTICE.md, package.json, projects/*/NOTICE.md, projects/*/package.json
Workspace catalogs and overrides are updated with pinned/bumped versions (e.g., lit/lit-html, markdown-it, @html-eslint/*, archiver, @inquirer/prompts, publint); package manifests and NOTICE attribution files are synchronized to the new versions.
lit-library starter refactor
projects/starters/lit-library/package.json, projects/starters/lit-library/vite.config.ts, projects/starters/lit-library/index.html, projects/starters/lit-library/src/login/login.test.ts
Loosened peerDependencies, removed some dev infra deps, updated Vite config (absolute paths, prod conditional sourcemaps, expanded entry globs), switched a browser import to package specifier, and localized shared test fixture helpers into the test file.
mcp-app starter implementation
projects/starters/mcp-app/, projects/starters/README.md, projects/starters/mcp-app/*
New mcp-app starter added: package + wireit tasks, Vite single-file build, TypeScript configs (client/server), server.ts registering tool and UI resource, main.ts stdio entrypoint, client UI (mcp-app.html, src/mcp-app.ts, CSS), docs (README, AGENTS).
Starter registry and build wiring
projects/internals/tools/src/project/starters.ts, projects/internals/tools/src/declarations.d.ts, projects/internals/tools/src/project/starters.test.ts, projects/starters/package.json, package.json, projects/pages/index.js
Starter type and startersData extended for mcp-app and lit-library CLI flag changed; archive/zipping uses typed ZipArchive and writes a .npmrc; tests assert new starter metadata; workspace and root CI/wireit build pipelines include mcp-app build and site asset copying updated.
Site integrations navigation and pages
projects/site/src/index.11tydata.js, projects/site/src/starters/index.11ty.js, projects/site/src/_11ty/layouts/common.js, projects/site/src/docs/integrations/index.11ty.js, projects/site/src/docs/integrations/lit-library.md, projects/site/src/docs/integrations/mcp-apps.md
Starter links normalized to GitHub /tree paths; starters index converted to a redirect to an Integrations landing page; integrations metadata adds lit-library and mcp-app; sidebar/navigation logic updated; new Integrations landing page and MCP Apps documentation added; lit-library doc frontmatter adjusted.
Source links normalization and asset corrections
projects/starters/*/src/**/*.html, projects/starters/*/src/**/*.tsx, projects/starters/*/src/**/*.vue, projects/site/src/docs/**/*.md, projects/starters/go/src/index.html
Standardizes source URLs across starter examples to GitHub /tree/main/..., fixes malformed CDN/import URLs in Go starter, and updates display text (e.g., GitHub button).
Repository and CLI documentation refresh
README.md, projects/cli/README.md, projects/site/src/docs/lint/index.md, projects/site/src/docs/skills/index.md, config/vale/styles/config/vocabularies/Elements/accept.txt
Root README rebranded/clarified, CLI README updated (commands/features), Skills documentation page added, lint page intro alert removed, and Vale vocabulary extended.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~60 minutes

Suggested reviewers

  • johnyanarella
🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 14.29% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
Title check ⚠️ Warning The PR title states 'feat(cli): enable mcp-app starter support' but the PR also extensively adds lit-library starter support, documentation updates across multiple scopes, GitHub URL fixes, dependency updates, and significant site navigation changes. The title does not capture the full scope of changes and is partially misleading. Update the title to reflect the primary changes: 'feat: add mcp-app and lit-library starters with documentation and site updates' or 'feat(starters): enable mcp-app and lit-library with associated tooling and docs'.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch topic-enable-starters

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 win

Wireit test glob mismatch: no *.test.*.ts sources currently

  • wireit.build.files excludes !src/**/*.test.*.ts, but wireit.test.files only tracks src/**/*.test.ts.
  • No files matching *.test.*.ts exist under projects/starters/lit-library/src right now, so the stale-cache scenario described isn’t currently triggered.
  • Optional: if you expect future *.test.<variant>.ts files (e.g., *.test.browser.ts), add src/**/*.test.*.ts to wireit.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

📥 Commits

Reviewing files that changed from the base of the PR and between 471b568 and 1c24a68.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (18)
  • NOTICE.md
  • pnpm-workspace.yaml
  • projects/cli/NOTICE.md
  • projects/cli/package.json
  • projects/code/NOTICE.md
  • projects/core/NOTICE.md
  • projects/forms/NOTICE.md
  • projects/internals/tools/src/project/starters.ts
  • projects/internals/vite/package.json
  • projects/lint/NOTICE.md
  • projects/markdown/NOTICE.md
  • projects/media/NOTICE.md
  • projects/monaco/NOTICE.md
  • projects/starters/go/src/index.html
  • projects/starters/lit-library/index.html
  • projects/starters/lit-library/package.json
  • projects/starters/lit-library/src/login/login.test.ts
  • projects/starters/lit-library/vite.config.ts

Comment thread projects/starters/go/src/index.html
@coryrylan coryrylan force-pushed the topic-enable-starters branch from 1c24a68 to 36aa44a Compare May 29, 2026 03:43
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 1c24a68 and 36aa44a.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (11)
  • NOTICE.md
  • README.md
  • pnpm-workspace.yaml
  • projects/code/NOTICE.md
  • projects/core/NOTICE.md
  • projects/forms/NOTICE.md
  • projects/internals/vite/package.json
  • projects/lint/NOTICE.md
  • projects/markdown/NOTICE.md
  • projects/media/NOTICE.md
  • projects/monaco/NOTICE.md

Comment thread README.md
Comment thread README.md
Comment thread README.md
@coryrylan coryrylan force-pushed the topic-enable-starters branch from 36aa44a to f507cfc Compare May 29, 2026 03:51
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between 36aa44a and f507cfc.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (12)
  • NOTICE.md
  • README.md
  • pnpm-workspace.yaml
  • projects/code/NOTICE.md
  • projects/core/NOTICE.md
  • projects/forms/NOTICE.md
  • projects/internals/vite/package.json
  • projects/lint/NOTICE.md
  • projects/markdown/NOTICE.md
  • projects/media/NOTICE.md
  • projects/monaco/NOTICE.md
  • projects/starters/go/src/index.html

Comment thread README.md Outdated
@coryrylan coryrylan force-pushed the topic-enable-starters branch from f507cfc to e3c3d62 Compare May 29, 2026 12:46
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

♻️ Duplicate comments (1)
README.md (1)

38-40: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Make Git LFS setup platform-neutral for contributors.

brew install git-lfs assumes macOS + Homebrew and can block Linux/Windows setup. Add OS-specific alternatives or link to official install docs before git 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 pull

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` 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

📥 Commits

Reviewing files that changed from the base of the PR and between f507cfc and e3c3d62.

⛔ Files ignored due to path filters (1)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
📒 Files selected for processing (19)
  • NOTICE.md
  • README.md
  • pnpm-workspace.yaml
  • projects/cli/NOTICE.md
  • projects/cli/package.json
  • projects/code/NOTICE.md
  • projects/core/NOTICE.md
  • projects/forms/NOTICE.md
  • projects/internals/tools/src/project/starters.ts
  • projects/internals/vite/package.json
  • projects/lint/NOTICE.md
  • projects/markdown/NOTICE.md
  • projects/media/NOTICE.md
  • projects/monaco/NOTICE.md
  • projects/starters/go/src/index.html
  • projects/starters/lit-library/index.html
  • projects/starters/lit-library/package.json
  • projects/starters/lit-library/src/login/login.test.ts
  • projects/starters/lit-library/vite.config.ts

Comment thread README.md
Comment thread pnpm-workspace.yaml
eslint: 'catalog:'
fast-uri: 3.1.2
liquidjs: 10.26.0
tmp: 0.2.6
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

most of these overrides are to bump for security patches flagged by gh scanning

"output": [],
"dependencies": [
"build",
"../../internals/testing:build"
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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>
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

incorrect url paths from git migration

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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

📥 Commits

Reviewing files that changed from the base of the PR and between e3c3d62 and dfd2fdc.

⛔ Files ignored due to path filters (3)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • projects/site/public/static/images/integrations/lit.svg is excluded by !**/*.svg
  • projects/site/public/static/images/integrations/preact.svg is excluded by !**/*.svg
📒 Files selected for processing (40)
  • NOTICE.md
  • README.md
  • package.json
  • pnpm-workspace.yaml
  • projects/code/NOTICE.md
  • projects/core/NOTICE.md
  • projects/forms/NOTICE.md
  • projects/internals/tools/src/project/starters.test.ts
  • projects/internals/tools/src/project/starters.ts
  • projects/internals/vite/package.json
  • projects/lint/NOTICE.md
  • projects/markdown/NOTICE.md
  • projects/media/NOTICE.md
  • projects/monaco/NOTICE.md
  • projects/pages/index.js
  • projects/site/src/_11ty/layouts/common.js
  • projects/site/src/docs/integrations/index.11ty.js
  • projects/site/src/docs/integrations/lit-library.md
  • projects/site/src/docs/integrations/mcp-apps.md
  • projects/site/src/docs/lint/index.md
  • projects/site/src/docs/skills/index.md
  • projects/site/src/index.11tydata.js
  • projects/site/src/starters/index.11ty.js
  • projects/starters/README.md
  • projects/starters/go/src/index.html
  • projects/starters/mcp-app/.gitignore
  • projects/starters/mcp-app/AGENTS.md
  • projects/starters/mcp-app/README.md
  • projects/starters/mcp-app/eslint.config.js
  • projects/starters/mcp-app/main.ts
  • projects/starters/mcp-app/mcp-app.html
  • projects/starters/mcp-app/package.json
  • projects/starters/mcp-app/server.ts
  • projects/starters/mcp-app/src/mcp-app.css
  • projects/starters/mcp-app/src/mcp-app.ts
  • projects/starters/mcp-app/src/vite-env.d.ts
  • projects/starters/mcp-app/tsconfig.json
  • projects/starters/mcp-app/tsconfig.server.json
  • projects/starters/mcp-app/vite.config.ts
  • projects/starters/package.json
💤 Files with no reviewable changes (1)
  • projects/site/src/docs/lint/index.md

Comment thread projects/site/src/_11ty/layouts/common.js
Comment thread projects/site/src/docs/skills/index.md
Comment thread projects/site/src/index.11tydata.js Outdated
Comment thread projects/starters/mcp-app/package.json
Comment thread projects/starters/mcp-app/server.ts
Comment thread projects/starters/mcp-app/src/mcp-app.css
Comment thread projects/starters/mcp-app/tsconfig.server.json
Comment thread projects/site/src/index.11tydata.js Outdated
Comment thread README.md Outdated
@coryrylan coryrylan force-pushed the topic-enable-starters branch from 74e866a to d086165 Compare June 2, 2026 22:13
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (5)
README.md (3)

84-84: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Improve 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 win

Update label format to match repository conventions.

The example uses type:fix but the repository's label naming convention is type(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 win

Fix 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 win

Vary 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 win

Remove /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

📥 Commits

Reviewing files that changed from the base of the PR and between e3c3d62 and 62bcea0.

⛔ Files ignored due to path filters (3)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • projects/site/public/static/images/integrations/lit.svg is excluded by !**/*.svg
  • projects/site/public/static/images/integrations/preact.svg is excluded by !**/*.svg
📒 Files selected for processing (62)
  • NOTICE.md
  • README.md
  • config/vale/styles/config/vocabularies/Elements/accept.txt
  • package.json
  • pnpm-workspace.yaml
  • projects/cli/README.md
  • projects/code/NOTICE.md
  • projects/core/NOTICE.md
  • projects/forms/NOTICE.md
  • projects/internals/tools/src/project/starters.test.ts
  • projects/internals/tools/src/project/starters.ts
  • projects/internals/vite/package.json
  • projects/lint/NOTICE.md
  • projects/markdown/NOTICE.md
  • projects/media/NOTICE.md
  • projects/monaco/NOTICE.md
  • projects/pages/index.js
  • projects/site/src/_11ty/layouts/common.js
  • projects/site/src/docs/integrations/go.md
  • projects/site/src/docs/integrations/hugo.md
  • projects/site/src/docs/integrations/index.11ty.js
  • projects/site/src/docs/integrations/lit-library.md
  • projects/site/src/docs/integrations/mcp-apps.md
  • projects/site/src/docs/labs/forms.md
  • projects/site/src/docs/lint/index.md
  • projects/site/src/docs/skills/index.md
  • projects/site/src/index.11tydata.js
  • projects/site/src/starters/index.11ty.js
  • projects/starters/README.md
  • projects/starters/angular/src/app/app.html
  • projects/starters/bundles/src/index.html
  • projects/starters/eleventy/src/_layouts/index.11ty.js
  • projects/starters/eleventy/src/index.11ty.js
  • projects/starters/go/src/index.html
  • projects/starters/hugo/content/_index.md
  • projects/starters/hugo/layouts/baseof.html
  • projects/starters/mcp-app/.gitignore
  • projects/starters/mcp-app/AGENTS.md
  • projects/starters/mcp-app/README.md
  • projects/starters/mcp-app/eslint.config.js
  • projects/starters/mcp-app/main.ts
  • projects/starters/mcp-app/mcp-app.html
  • projects/starters/mcp-app/package.json
  • projects/starters/mcp-app/server.ts
  • projects/starters/mcp-app/src/mcp-app.css
  • projects/starters/mcp-app/src/mcp-app.ts
  • projects/starters/mcp-app/src/vite-env.d.ts
  • projects/starters/mcp-app/tsconfig.json
  • projects/starters/mcp-app/tsconfig.server.json
  • projects/starters/mcp-app/vite.config.ts
  • projects/starters/mpa/src/about/index.html
  • projects/starters/mpa/src/index.html
  • projects/starters/mpa/src/settings/index.html
  • projects/starters/nextjs/src/pages/index.tsx
  • projects/starters/nuxt/app/layouts/default.vue
  • projects/starters/nuxt/app/pages/index.vue
  • projects/starters/package.json
  • projects/starters/react/src/App.tsx
  • projects/starters/solidjs/src/App.tsx
  • projects/starters/svelte/src/App.svelte
  • projects/starters/typescript/src/index.html
  • projects/starters/vue/src/App.vue
💤 Files with no reviewable changes (1)
  • projects/site/src/docs/lint/index.md

@coryrylan coryrylan force-pushed the topic-enable-starters branch from 62bcea0 to 2f8645c Compare June 3, 2026 17:39
@coryrylan coryrylan requested a review from johnyanarella June 3, 2026 17:49
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 win

Keep Starter exhaustive with startersData.

startersData includes hugo, but the exported Starter union still does not. That leaves typed callers unable to request a supported starter through createStarter().

♻️ 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 win

Fix the Bundles starter source path.

starterSource now points to projects/bundles, but the supplied starter files live under projects/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 win

Complete the starter inventory in this README.

Adding /mcp-app makes 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

📥 Commits

Reviewing files that changed from the base of the PR and between 62bcea0 and 2f8645c.

⛔ Files ignored due to path filters (3)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • projects/site/public/static/images/integrations/lit.svg is excluded by !**/*.svg
  • projects/site/public/static/images/integrations/preact.svg is excluded by !**/*.svg
📒 Files selected for processing (68)
  • NOTICE.md
  • README.md
  • config/vale/styles/config/vocabularies/Elements/accept.txt
  • package.json
  • pnpm-workspace.yaml
  • projects/cli/NOTICE.md
  • projects/cli/README.md
  • projects/cli/package.json
  • projects/code/NOTICE.md
  • projects/core/NOTICE.md
  • projects/forms/NOTICE.md
  • projects/internals/tools/src/project/starters.test.ts
  • projects/internals/tools/src/project/starters.ts
  • projects/internals/vite/package.json
  • projects/lint/NOTICE.md
  • projects/markdown/NOTICE.md
  • projects/media/NOTICE.md
  • projects/monaco/NOTICE.md
  • projects/pages/index.js
  • projects/site/src/_11ty/layouts/common.js
  • projects/site/src/docs/integrations/go.md
  • projects/site/src/docs/integrations/hugo.md
  • projects/site/src/docs/integrations/index.11ty.js
  • projects/site/src/docs/integrations/lit-library.md
  • projects/site/src/docs/integrations/mcp-apps.md
  • projects/site/src/docs/labs/forms.md
  • projects/site/src/docs/lint/index.md
  • projects/site/src/docs/skills/index.md
  • projects/site/src/index.11tydata.js
  • projects/site/src/starters/index.11ty.js
  • projects/starters/README.md
  • projects/starters/angular/src/app/app.html
  • projects/starters/bundles/src/index.html
  • projects/starters/eleventy/src/_layouts/index.11ty.js
  • projects/starters/eleventy/src/index.11ty.js
  • projects/starters/go/src/index.html
  • projects/starters/hugo/content/_index.md
  • projects/starters/hugo/layouts/baseof.html
  • projects/starters/lit-library/index.html
  • projects/starters/lit-library/package.json
  • projects/starters/lit-library/src/login/login.test.ts
  • projects/starters/lit-library/vite.config.ts
  • projects/starters/mcp-app/.gitignore
  • projects/starters/mcp-app/AGENTS.md
  • projects/starters/mcp-app/README.md
  • projects/starters/mcp-app/eslint.config.js
  • projects/starters/mcp-app/main.ts
  • projects/starters/mcp-app/mcp-app.html
  • projects/starters/mcp-app/package.json
  • projects/starters/mcp-app/server.ts
  • projects/starters/mcp-app/src/mcp-app.css
  • projects/starters/mcp-app/src/mcp-app.ts
  • projects/starters/mcp-app/src/vite-env.d.ts
  • projects/starters/mcp-app/tsconfig.json
  • projects/starters/mcp-app/tsconfig.server.json
  • projects/starters/mcp-app/vite.config.ts
  • projects/starters/mpa/src/about/index.html
  • projects/starters/mpa/src/index.html
  • projects/starters/mpa/src/settings/index.html
  • projects/starters/nextjs/src/pages/index.tsx
  • projects/starters/nuxt/app/layouts/default.vue
  • projects/starters/nuxt/app/pages/index.vue
  • projects/starters/package.json
  • projects/starters/react/src/App.tsx
  • projects/starters/solidjs/src/App.tsx
  • projects/starters/svelte/src/App.svelte
  • projects/starters/typescript/src/index.html
  • projects/starters/vue/src/App.vue
💤 Files with no reviewable changes (1)
  • projects/site/src/docs/lint/index.md

Comment thread projects/cli/package.json
Comment thread projects/internals/tools/src/project/starters.test.ts
Comment thread projects/site/src/_11ty/layouts/common.js Outdated
Comment thread projects/site/src/docs/integrations/go.md
Comment thread projects/site/src/docs/integrations/lit-library.md
Comment thread projects/site/src/docs/labs/forms.md
Comment thread projects/starters/mcp-app/.gitignore
Comment thread projects/starters/mcp-app/mcp-app.html
@coryrylan coryrylan force-pushed the topic-enable-starters branch from 2f8645c to 47a6d03 Compare June 3, 2026 18:54
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 win

Button 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 win

Button 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 win

Button 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 win

Button 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 win

Button 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 win

Button 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 win

Hyphenate 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 win

Hyphenate 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 win

Vary 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 win

Remove /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 win

Add selected state to the Starters button for all integration pages.

The Starters button lacks a selected state. It should be marked selected when 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 win

Add a matching lit-library integration entry.

The mcp-app integration is complete, but projects/site/src/docs/integrations/lit-library.md uses {% integration 'lit-library' %} and {% installation 'lit-library' %} shortcodes that expect a corresponding siteData.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-library integration entry alongside the existing extensions entry:

   },
+  '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

📥 Commits

Reviewing files that changed from the base of the PR and between 2f8645c and 47a6d03.

⛔ Files ignored due to path filters (3)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • projects/site/public/static/images/integrations/lit.svg is excluded by !**/*.svg
  • projects/site/public/static/images/integrations/preact.svg is excluded by !**/*.svg
📒 Files selected for processing (33)
  • README.md
  • config/vale/styles/config/vocabularies/Elements/accept.txt
  • projects/cli/README.md
  • projects/internals/tools/package.json
  • projects/internals/tools/src/project/starters.test.ts
  • projects/site/src/_11ty/layouts/common.js
  • projects/site/src/docs/integrations/go.md
  • projects/site/src/docs/integrations/hugo.md
  • projects/site/src/docs/integrations/index.11ty.js
  • projects/site/src/docs/integrations/lit-library.md
  • projects/site/src/docs/integrations/mcp-apps.md
  • projects/site/src/docs/labs/forms.md
  • projects/site/src/docs/lint/index.md
  • projects/site/src/docs/skills/index.md
  • projects/site/src/index.11tydata.js
  • projects/site/src/starters/index.11ty.js
  • projects/starters/angular/src/app/app.html
  • projects/starters/bundles/src/index.html
  • projects/starters/eleventy/src/_layouts/index.11ty.js
  • projects/starters/eleventy/src/index.11ty.js
  • projects/starters/hugo/content/_index.md
  • projects/starters/hugo/layouts/baseof.html
  • projects/starters/mpa/src/about/index.html
  • projects/starters/mpa/src/index.html
  • projects/starters/mpa/src/settings/index.html
  • projects/starters/nextjs/src/pages/index.tsx
  • projects/starters/nuxt/app/layouts/default.vue
  • projects/starters/nuxt/app/pages/index.vue
  • projects/starters/react/src/App.tsx
  • projects/starters/solidjs/src/App.tsx
  • projects/starters/svelte/src/App.svelte
  • projects/starters/typescript/src/index.html
  • projects/starters/vue/src/App.vue
💤 Files with no reviewable changes (1)
  • projects/site/src/docs/lint/index.md

Comment thread projects/internals/tools/package.json
@coryrylan coryrylan force-pushed the topic-enable-starters branch from 47a6d03 to 713ce6b Compare June 3, 2026 19:13
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (3)
projects/site/src/docs/integrations/go.md (1)

20-20: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Hyphenate 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 win

Add selected state to the Starters header button.

The button has no selected attribute logic, so it won't highlight when users are on integration pages. Other header buttons use data.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 win

Add lit-library integration metadata to siteData.integrations

  • projects/site/src/index.11tydata.js defines siteData.integrations (via const integrations = { ... }) but there is no lit-library entry.
  • projects/site/src/docs/integrations/shortcodes.js renders {% integration 'lit-library' %} only when siteData.integrations[integration]?.logo exists; 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 on siteData.integrations; it just uses the passed starter string for the generic nve project.create --type=... snippet.

Add a lit-library key to const integrations = { ... } in projects/site/src/index.11tydata.js with the expected fields (at least logo, 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

📥 Commits

Reviewing files that changed from the base of the PR and between 47a6d03 and 713ce6b.

⛔ Files ignored due to path filters (3)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • projects/site/public/static/images/integrations/lit.svg is excluded by !**/*.svg
  • projects/site/public/static/images/integrations/preact.svg is excluded by !**/*.svg
📒 Files selected for processing (35)
  • README.md
  • config/vale/styles/config/vocabularies/Elements/accept.txt
  • projects/cli/README.md
  • projects/internals/tools/package.json
  • projects/internals/tools/src/declarations.d.ts
  • projects/internals/tools/src/project/starters.test.ts
  • projects/internals/tools/src/project/starters.ts
  • projects/site/src/_11ty/layouts/common.js
  • projects/site/src/docs/integrations/go.md
  • projects/site/src/docs/integrations/hugo.md
  • projects/site/src/docs/integrations/index.11ty.js
  • projects/site/src/docs/integrations/lit-library.md
  • projects/site/src/docs/integrations/mcp-apps.md
  • projects/site/src/docs/labs/forms.md
  • projects/site/src/docs/lint/index.md
  • projects/site/src/docs/skills/index.md
  • projects/site/src/index.11tydata.js
  • projects/site/src/starters/index.11ty.js
  • projects/starters/angular/src/app/app.html
  • projects/starters/bundles/src/index.html
  • projects/starters/eleventy/src/_layouts/index.11ty.js
  • projects/starters/eleventy/src/index.11ty.js
  • projects/starters/hugo/content/_index.md
  • projects/starters/hugo/layouts/baseof.html
  • projects/starters/mpa/src/about/index.html
  • projects/starters/mpa/src/index.html
  • projects/starters/mpa/src/settings/index.html
  • projects/starters/nextjs/src/pages/index.tsx
  • projects/starters/nuxt/app/layouts/default.vue
  • projects/starters/nuxt/app/pages/index.vue
  • projects/starters/react/src/App.tsx
  • projects/starters/solidjs/src/App.tsx
  • projects/starters/svelte/src/App.svelte
  • projects/starters/typescript/src/index.html
  • projects/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>
@coryrylan coryrylan force-pushed the topic-enable-starters branch from 713ce6b to 1c25a51 Compare June 3, 2026 21:52
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 win

Update 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 win

Update 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 win

Update 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 win

Link 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 win

Add missing lit-library integration entry.

The integration metadata includes mcp-app but is missing lit-library. The docs page projects/site/src/docs/integrations/lit-library.md references this key in its shortcodes (lines 11, 13), which will fail to resolve integration and installation metadata.

📦 Proposed fix

Add the lit-library entry after the lit entry:

   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 win

Hyphenate 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 win

Hyphenate 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 win

Scope callCount per server instance.

callCount is module-global, so multiple createServer() instances share one counter. Move it inside createServer() and pass a counter callback to createGreeting().

🤖 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 win

Avoid 100vw on body to prevent horizontal overflow.

width: 100vw adds a horizontal scroll gutter on platforms with non-overlay scrollbars. Prefer width: 100% (or inline-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 win

Initial 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 in mcp-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 win

Past 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 win

Add selection logic to the Starters header button.

The "Starters" header button should show a selected state 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

📥 Commits

Reviewing files that changed from the base of the PR and between 713ce6b and 1c25a51.

⛔ Files ignored due to path filters (3)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • projects/site/public/static/images/integrations/lit.svg is excluded by !**/*.svg
  • projects/site/public/static/images/integrations/preact.svg is excluded by !**/*.svg
📒 Files selected for processing (69)
  • NOTICE.md
  • README.md
  • config/vale/styles/config/vocabularies/Elements/accept.txt
  • package.json
  • pnpm-workspace.yaml
  • projects/cli/NOTICE.md
  • projects/cli/README.md
  • projects/cli/package.json
  • projects/code/NOTICE.md
  • projects/core/NOTICE.md
  • projects/internals/tools/package.json
  • projects/internals/tools/src/declarations.d.ts
  • projects/internals/tools/src/project/starters.test.ts
  • projects/internals/tools/src/project/starters.ts
  • projects/internals/vite/package.json
  • projects/lint/NOTICE.md
  • projects/markdown/NOTICE.md
  • projects/media/NOTICE.md
  • projects/monaco/NOTICE.md
  • projects/pages/index.js
  • projects/site/src/_11ty/layouts/common.js
  • projects/site/src/docs/integrations/go.md
  • projects/site/src/docs/integrations/hugo.md
  • projects/site/src/docs/integrations/index.11ty.js
  • projects/site/src/docs/integrations/lit-library.md
  • projects/site/src/docs/integrations/mcp-apps.md
  • projects/site/src/docs/labs/forms.md
  • projects/site/src/docs/lint/index.md
  • projects/site/src/docs/skills/index.md
  • projects/site/src/index.11tydata.js
  • projects/site/src/starters/index.11ty.js
  • projects/starters/README.md
  • projects/starters/angular/src/app/app.html
  • projects/starters/bundles/src/index.html
  • projects/starters/eleventy/src/_layouts/index.11ty.js
  • projects/starters/eleventy/src/index.11ty.js
  • projects/starters/go/src/index.html
  • projects/starters/hugo/content/_index.md
  • projects/starters/hugo/layouts/baseof.html
  • projects/starters/lit-library/index.html
  • projects/starters/lit-library/package.json
  • projects/starters/lit-library/src/login/login.test.ts
  • projects/starters/lit-library/vite.config.ts
  • projects/starters/mcp-app/.gitignore
  • projects/starters/mcp-app/AGENTS.md
  • projects/starters/mcp-app/README.md
  • projects/starters/mcp-app/eslint.config.js
  • projects/starters/mcp-app/main.ts
  • projects/starters/mcp-app/mcp-app.html
  • projects/starters/mcp-app/package.json
  • projects/starters/mcp-app/server.ts
  • projects/starters/mcp-app/src/mcp-app.css
  • projects/starters/mcp-app/src/mcp-app.ts
  • projects/starters/mcp-app/src/vite-env.d.ts
  • projects/starters/mcp-app/tsconfig.json
  • projects/starters/mcp-app/tsconfig.server.json
  • projects/starters/mcp-app/vite.config.ts
  • projects/starters/mpa/src/about/index.html
  • projects/starters/mpa/src/index.html
  • projects/starters/mpa/src/settings/index.html
  • projects/starters/nextjs/src/pages/index.tsx
  • projects/starters/nuxt/app/layouts/default.vue
  • projects/starters/nuxt/app/pages/index.vue
  • projects/starters/package.json
  • projects/starters/react/src/App.tsx
  • projects/starters/solidjs/src/App.tsx
  • projects/starters/svelte/src/App.svelte
  • projects/starters/typescript/src/index.html
  • projects/starters/vue/src/App.vue
💤 Files with no reviewable changes (1)
  • projects/site/src/docs/lint/index.md

Comment thread projects/cli/README.md
Comment thread projects/site/src/_11ty/layouts/common.js
Comment thread projects/starters/lit-library/src/login/login.test.ts
Signed-off-by: Cory Rylan <crylan@nvidia.com>
@coryrylan coryrylan force-pushed the topic-enable-starters branch from 1c25a51 to 35bb798 Compare June 3, 2026 22:10
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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 win

Button 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 win

Button 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 win

Button 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 win

Button 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 win

Button 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 win

Misleading 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 win

Misleading 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 win

Misleading 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 win

Misleading 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 win

Misleading 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 win

Add 'hugo' to the exported Starter union to match startersData.

startersData includes hugo, and createStarter(starter: Starter, ...) is typed to Starter, but the exported Starter union 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 win

Fix the Bundles source path.

starterSource points at projects/bundles, but this starter lives under projects/starters/bundles in 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 win

Hyphenate 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 win

Hyphenate 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 win

Remove DOM from server TypeScript configuration.

The server compilation includes "DOM" in the lib array, 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 win

Use pnpm run build in 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/inspector may be intentional (similar to the workaround in projects/cli/package.json), the build step should use pnpm run build to 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 build in projects/starters/mcp-app after 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 win

Don'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 win

Restore 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

📥 Commits

Reviewing files that changed from the base of the PR and between 1c25a51 and 35bb798.

⛔ Files ignored due to path filters (3)
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • projects/site/public/static/images/integrations/lit.svg is excluded by !**/*.svg
  • projects/site/public/static/images/integrations/preact.svg is excluded by !**/*.svg
📒 Files selected for processing (66)
  • NOTICE.md
  • README.md
  • config/vale/styles/config/vocabularies/Elements/accept.txt
  • package.json
  • pnpm-workspace.yaml
  • projects/cli/NOTICE.md
  • projects/cli/README.md
  • projects/cli/package.json
  • projects/code/NOTICE.md
  • projects/core/NOTICE.md
  • projects/internals/tools/package.json
  • projects/internals/tools/src/declarations.d.ts
  • projects/internals/tools/src/project/starters.test.ts
  • projects/internals/tools/src/project/starters.ts
  • projects/internals/vite/package.json
  • projects/lint/NOTICE.md
  • projects/markdown/NOTICE.md
  • projects/media/NOTICE.md
  • projects/monaco/NOTICE.md
  • projects/pages/index.js
  • projects/site/src/_11ty/layouts/common.js
  • projects/site/src/docs/integrations/go.md
  • projects/site/src/docs/integrations/hugo.md
  • projects/site/src/docs/integrations/index.11ty.js
  • projects/site/src/docs/integrations/lit-library.md
  • projects/site/src/docs/integrations/mcp-apps.md
  • projects/site/src/docs/integrations/shortcodes.js
  • projects/site/src/docs/labs/forms.md
  • projects/site/src/docs/lint/index.md
  • projects/site/src/docs/skills/index.md
  • projects/site/src/index.11tydata.js
  • projects/site/src/starters/index.11ty.js
  • projects/starters/README.md
  • projects/starters/angular/src/app/app.html
  • projects/starters/bundles/src/index.html
  • projects/starters/eleventy/src/_layouts/index.11ty.js
  • projects/starters/eleventy/src/index.11ty.js
  • projects/starters/go/src/index.html
  • projects/starters/hugo/content/_index.md
  • projects/starters/hugo/layouts/baseof.html
  • projects/starters/mcp-app/.gitignore
  • projects/starters/mcp-app/AGENTS.md
  • projects/starters/mcp-app/README.md
  • projects/starters/mcp-app/eslint.config.js
  • projects/starters/mcp-app/main.ts
  • projects/starters/mcp-app/mcp-app.html
  • projects/starters/mcp-app/package.json
  • projects/starters/mcp-app/server.ts
  • projects/starters/mcp-app/src/mcp-app.css
  • projects/starters/mcp-app/src/mcp-app.ts
  • projects/starters/mcp-app/src/vite-env.d.ts
  • projects/starters/mcp-app/tsconfig.json
  • projects/starters/mcp-app/tsconfig.server.json
  • projects/starters/mcp-app/vite.config.ts
  • projects/starters/mpa/src/about/index.html
  • projects/starters/mpa/src/index.html
  • projects/starters/mpa/src/settings/index.html
  • projects/starters/nextjs/src/pages/index.tsx
  • projects/starters/nuxt/app/layouts/default.vue
  • projects/starters/nuxt/app/pages/index.vue
  • projects/starters/package.json
  • projects/starters/react/src/App.tsx
  • projects/starters/solidjs/src/App.tsx
  • projects/starters/svelte/src/App.svelte
  • projects/starters/typescript/src/index.html
  • projects/starters/vue/src/App.vue
💤 Files with no reviewable changes (1)
  • projects/site/src/docs/lint/index.md

@coryrylan coryrylan changed the title feat(cli): enable lit-library starter support feat(cli): enable mcp-app starter support Jun 3, 2026
coryrylan added 2 commits June 3, 2026 18:31
Signed-off-by: Cory Rylan <crylan@nvidia.com>
Signed-off-by: Cory Rylan <crylan@nvidia.com>
@coryrylan coryrylan force-pushed the topic-enable-starters branch from 35bb798 to 510cc7c Compare June 3, 2026 23:32
Signed-off-by: Cory Rylan <crylan@nvidia.com>
@coryrylan coryrylan force-pushed the topic-enable-starters branch from 510cc7c to b018ed2 Compare June 4, 2026 16:56
@coryrylan coryrylan merged commit 0195089 into main Jun 4, 2026
13 checks passed
@coryrylan coryrylan deleted the topic-enable-starters branch June 4, 2026 17:10
@coryrylan
Copy link
Copy Markdown
Collaborator Author

🎉 This issue has been resolved in version 0.3.0 🎉

Changelog

@coryrylan
Copy link
Copy Markdown
Collaborator Author

🎉 This issue has been resolved in version 0.0.10 🎉

Changelog

@coryrylan
Copy link
Copy Markdown
Collaborator Author

🎉 This issue has been resolved in version 0.2.4 🎉

Changelog

@coryrylan
Copy link
Copy Markdown
Collaborator Author

🎉 This issue has been resolved in version 0.4.0 🎉

Changelog

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants