Monorepo for logic grid puzzle generation and solving.
packages/logic-grid— Core library (TypeScript, zero dependencies)packages/logic-grid-ai— AI-powered themed category generationpackages/demo— Browser demo (SvelteKit)
npm run check— Runs typecheck + lint + format + test for all packagesnpm run build— Builds all packagesnpm test— Runs tests across all workspaces
- Never use
npx— usenode_modules/.bin/or npm scripts - Commit often — after each logical change, not batched at the end
- Always run
npm run checkbefore committing - Keep the library zero-dependency
- Supported grid sizes: 3–8
- Throw on errors — never silently swallow or use fallback values
- Prefer simple solutions — don't over-engineer
- Never add Co-Authored-By lines or any AI/Claude references to commits or outputs
Releases are driven by release-please from Conventional Commits, strictly: only types that ship to users trigger releases or appear in CHANGELOG.
- Triggers a release (and shows in CHANGELOG):
feat:(minor),fix:/perf:/revert:(patch). Major requires!after the type or aBREAKING CHANGE:footer. - Internal hygiene (no release, no CHANGELOG entry):
refactor,docs,deps,chore,test,ci,build,style. Use these freely; they don't propose Release PRs. - Path-scoped: a commit only triggers a Release PR for the package whose files it touches (e.g.
packages/logic-grid/**→logic-gridPR). Commits touching both packages trigger both. - After a
logic-gridmajor release, bumplogic-grid-ai's peerDep with a follow-up commit that includesBREAKING CHANGE:so a correspondinglogic-grid-aimajor is cut.