Thanks for helping improve opencode-goal-plugin.
Use the pinned Node version when possible:
nvm useRun the local checks before submitting changes:
npm test
npm run test:coverage
npm run type:check
npm run test:mutation
npm run smoke
npm run smoke:packed-host
npm run smoke:packed-tools
npm run benchmark:behavior
npm run verify
npm run check
npm run pack:checkFor behavior changes, add or update tests in test/goal-plugin.test.js.
This plugin depends on OpenCode plugin hooks, including experimental hooks. When changing hook usage, command behavior, or system-prompt transforms:
- Check the current OpenCode plugin and command documentation.
- Run
npm run smoke,npm run smoke:packed-host,npm run smoke:packed-tools, andnpm run type:checkto verify the source and installed-tarball contracts. - Test against a real OpenCode install when possible.
- Update the README compatibility snapshot if the tested surface changes.
npm run smoke verifies the package export path and /goal command hook without invoking a model. The packed-host and packed-tool checks install the npm artifact in isolated consumer projects and verify the public hook and complete optional-peer tool contracts. npm run type:check compiles installed-package consumers with NodeNext and Bundler resolution. npm run benchmark:behavior covers deterministic autonomy and token-efficiency scenarios. None replaces a real OpenCode smoke test after hook, SDK, or command behavior changes.
Before publishing or tagging a release, follow the release process. The required automated gate is:
- run
npm ci - update
CHANGELOG.mdand both package-version files - run
npm run release:check - perform at least one manual OpenCode smoke test if hook behavior changed
- refresh compatibility notes if the tested OpenCode surface changed
Keep pull requests focused. Include:
- what changed
- why it changed
- the checks you ran
- any manual OpenCode smoke testing performed