add claude config - #883
Open
Devin T. Currie (DTCurrie) wants to merge 2 commits into
Open
Conversation
|
Contributor
|
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Adopts
@viamrobotics/claude-configso this repo's Claude Code setup is generated from a manifest instead of maintained by hand. Two rules this repo authored,frontend-aesthetics.mdandviam-context.md, become shared modules that every Viam repo gets, and the genuinely repo-specific guidance moves into unmanaged-localrules that sit beside them. Depends on viamrobotics/prime#665.Configuration
claude-config.jsondeclares the stack: pnpm, Node 22, wireit,@viamrobotics/motion-toolsas the root package, and Svelte MCP off (svelteTransport: "none"), which matches what this repo actually runs.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..nvmrc(22) and.claude/settings.json, which setsTerseas the default output style and registers the session-start hook..gitignoreand.prettierignore. The Prettier block ignores.claude/and.mcp.jsonso this repo's tab-indented Prettier config stops fighting the canonical files..claude/settings.ci.jsonbecomes managed. The permission list is unchanged, only the indentation moves to the canonical style.CLAUDE.mdrules 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.typescriptis deliberately off. This repo had notypescript.mdbefore and does not get one now. Fliprules.modules.typescripttotrueand re-runinstallif we want it.svelte-local.md(Koota ECS, Threlte on-demand rendering andinvalidate(),useTaskover$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), andtesting-frontend-local.md(the context-injection fixture convention). The tool does not manage those three.viam-context.mdis 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. Enablingrdkalso 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-jsas the stateful-primitive default,lucide-svelte, thesrc/lib/plugins/XR/*paths in the legitimate-hex carve-out, and theapp.cssand.motion-tools-tablereferences. "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.mdis 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.mdand all three had drifted. The table now comes fromviamContext.sourcesin the manifest, whichinitfills in by scanning everypackage.json,go.mod, and Python manifest in the repo.Testing
Ran
claude-config doctorfrom 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 adoctorstep to CI is follow-up work, and until that lands the drift check is not enforced.