Skip to content

add claude config - #883

Open
Devin T. Currie (DTCurrie) wants to merge 2 commits into
mainfrom
add-claude-config
Open

add claude config#883
Devin T. Currie (DTCurrie) wants to merge 2 commits into
mainfrom
add-claude-config

Conversation

@DTCurrie

@DTCurrie Devin T. Currie (DTCurrie) commented Jul 27, 2026

Copy link
Copy Markdown
Member

Adopts @viamrobotics/claude-config so this repo's Claude Code setup is generated from a manifest instead of maintained by hand. Two rules this repo authored, frontend-aesthetics.md and viam-context.md, become shared modules that every Viam repo gets, and the genuinely repo-specific guidance moves into unmanaged -local rules that sit beside them. Depends on viamrobotics/prime#665.

Configuration

  • claude-config.json declares the stack: pnpm, Node 22, wireit, @viamrobotics/motion-tools as the root package, and Svelte MCP off (svelteTransport: "none"), which matches what this repo actually runs.
  • It also records ci.setupAction, the verify commands, workflows.teamMention: "@viamrobotics/team-viz", workflows.goTools, and which CI secrets exist here. Those sections are validated but render no files yet. They are input for the workflow caller stubs that land later.
  • New .nvmrc (22) and .claude/settings.json, which sets Terse as the default output style and registers the session-start hook.
  • Managed blocks appear in .gitignore and .prettierignore. The Prettier block ignores .claude/ and .mcp.json so this repo's tab-indented Prettier config stops fighting the canonical files.
  • .claude/settings.ci.json becomes managed. The permission list is unchanged, only the indentation moves to the canonical style.
  • The CLAUDE.md rules table becomes a marker-delimited region. The rest of the file stays repo-owned.

Rules

Thirteen managed rules: svelte, frontend-aesthetics, three, testing-frontend, pr-description, changesets, go, testing-go, viam-context, code-comments, editing-discipline, verification, design-system. The last four are new to this repo and load every session.

  • typescript is deliberately off. This repo had no typescript.md before and does not get one now. Flip rules.modules.typescript to true and re-run install if we want it.
  • Repo-specific guidance moves into svelte-local.md (Koota ECS, Threlte on-demand rendering and invalidate(), useTask over $effect, dispose={false}, BVH opt-out), pr-description-local.md (the Proto / Go Draw API / Go Client API / Frontend layer table and the stacked-PR convention), and testing-frontend-local.md (the context-injection fixture convention). The tool does not manage those three.
  • viam-context.md is rendered for this repo with all six sources it uses: the API protos, rdk, the TypeScript SDK, the Svelte SDK, test-widgets, and prime-core. Enabling rdk also pulls in the note that GitHub code search cannot follow Go interface implementations across packages.

Why?

What was dropped from the local frontend-aesthetics.md?

The shared version cannot carry repo-specific references, so these came out: the prime-core component enumeration, @zag-js as the stateful-primitive default, lucide-svelte, the src/lib/plugins/XR/* paths in the legitimate-hex carve-out, and the app.css and .motion-tools-table references. "Components first" is also rephrased to "check the design system for an existing pattern before adding a parallel one, extend rather than duplicate", because the original wording assumes a consumer of the component library and reads backwards inside the library itself.

If any of that guidance is still load-bearing here, CLAUDE.md is the right home for it. That file is repo-owned and the tool only manages the rules-table region.

Why is the sources table generated rather than written?

All three consumer repos had a hand-maintained viam-context.md and all three had drifted. The table now comes from viamContext.sources in the manifest, which init fills in by scanning every package.json, go.mod, and Python manifest in the repo.

Testing

Ran claude-config doctor from a local build of the CLI: 22 files, clean.

This repo does not yet depend on @viamrobotics/claude-config, so the managed files were generated from a local checkout. Adding the devDependency and a doctor step to CI is follow-up work, and until that lands the drift check is not enforced.

@changeset-bot

changeset-bot Bot commented Jul 27, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: 57df7cd

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

Click here if you're a maintainer who wants to add a changeset to this PR

@github-actions

github-actions Bot commented Jul 27, 2026

Copy link
Copy Markdown
Contributor
PR Preview Action v1.8.1

QR code for preview link

🚀 View preview at
https://viamrobotics.github.io/visualization/pr-preview/pr-883/

Built to branch gh-pages at 2026-07-27 19:24 UTC.
Preview will be ready when the GitHub Pages deployment is complete.

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant