Keep the documents current.docs/guide.md, docs/installing.md, docs/trigscript.md, docs/triggers.md, docs/file-formats.md,
docs/chk-format.md, docs/game-data.md, docs/plugins.md and this file are the
documentation site, and README.md is the repository's front page; a behaviour change that is
not in them is undocumented. CLAUDE.md carries the implementation detail and is kept in
step with the code too.
Nothing of Blizzard's goes into git. Not the extracted data, not the archives, not
the fixture maps. .gitignore covers the generated trees; check before adding a test
fixture.
Record where adapted code comes from. The rule is in
ATTRIBUTION.md: a provenance comment beside
adapted algorithms and tables, an entry there naming the source and license, and the
original notice kept.
Run what CI runs: npm run lint, npm test and npm run build. With the game data
and fixture maps on disk, the real-data suites run too, and that is the run that counts
for anything under src/formats/.
Plugin API changes are additive.PLUGIN_API_VERSION stays where it is for an
addition; document the addition in docs/plugins.md and with a doc comment in
src/plugins/api.ts, which is what the reference is generated from. The example plugin
at scm-js/plugin-hello-world should
keep building.
The plugins are separate repositories under github.com/scm-js.
A change to the editor that a default plugin needs is released by moving that plugin's
tag in src/plugins/defaults.ts.