# Contributing

Bug reports, focused fixes, and compatibility updates are welcome.

## Before changing code

- Keep one pull request focused on one problem. Do not bundle unrelated
  refactors, generated artifacts, or release preparation.
- Never commit credentials. This plugin reads a real Grok Build session, so no
  `~/.grok/auth.json` contents, access or refresh tokens, account identifiers,
  or raw subscription responses belong in the repository, tests, or issues.
- Reuse DSH's native model, settings, tool, and plugin-lifecycle contracts
  instead of introducing a parallel subsystem.

## Local verification

```sh
npm install
npm test
npm run build
```

`lib/` is committed and generated by the build — never edit it by hand. Run
`npm run build` and commit the result whenever `src/` changes; CI fails if the
committed `lib/` differs from a fresh build.

Changes that affect the DSH UI or the plugin lifecycle also need a check in a
real DSH installation; source tests alone are not installed-product acceptance.
The host-side adapter is loaded into memory, so restart `dsh web` before judging
a host change, and hard-refresh the browser for client changes.

## Pull requests

Describe the user-visible problem, the smallest implemented change, the checks
you ran, and any remaining compatibility risk. When user instructions change,
keep `README.md` and `README.en.md` behaviourally aligned.

The READMEs are user documentation. They explain the product and its supported
use, not internal debugging history or private design discussion.

A merged pull request does not imply an immediate npm release; maintainers batch
fixes into planned releases.
