# Claude Skills And Project Instructions

## Project Overview

- Project: `@jwc/jscad-hardware`
- Runtime target: JSCAD v1 style scripts and browser-consumed generated outputs.
- Build system: custom Gulp tasks (`gulp all`, `gulp`, injection/generation flow).
- Type style: use JSDoc types for options and return contracts.

## Testing

- Install dependencies: `npm install`
- Run tests (watch): `npm test`
- Run tests once: `npm run test:run`

Test expectations:

- Keep hardware dimension tests deterministic.
- Assert explicit dimensions/tolerances for bolts, nuts, and washers.

## Troubleshooting

- Build errors for missing modules: reinstall dependencies.
- Browser/runtime issues: verify include order and call `util.init(CSG)` in consumers.
- Output/injection stale: rerun build (`npm run build`) and confirm generated artifacts.
- GL/render-related failures: validate local native/headless GL setup before changing baselines.

## Coding Guidance

- Preserve existing public part interfaces.
- Add JSDoc typing on public utilities and constructors.
- Keep Gulp task structure intact.

## Skills

- See `.claude/skills/jscad1-browser-gulp/SKILL.md`.