Stand up the new shared engine package packages/gittensory-engine/ (npm name @jsonbored/gittensory-engine) that will house deterministic logic extracted from src/ in later issues. This issue is packaging-only — no logic moves yet. Mirror the existing packages/gittensory-mcp/ conventions exactly: its package.json shape (license, repository.directory, publishConfig.access: public, engines.node >=22.0.0), its tsconfig approach, and its build script pattern (node --check per emitted file, extended here to a real tsc build since this package is pure TS logic, not a JS CLI).
Deliverables
References
packages/gittensory-mcp/package.json — the packaging convention to mirror (name, bin, files, engines).
packages/gittensory-mcp/bin/gittensory-mcp.js — sibling package's entry-point style (for later CLI issues, not this one).
- Root
package.json workspaces: ["apps/*", "packages/*"] — confirms the new package is auto-discovered.
- Root
tsconfig.json — the compiler options to extend.
- New path:
packages/gittensory-engine/ (this issue creates it).
Stand up the new shared engine package
packages/gittensory-engine/(npm name@jsonbored/gittensory-engine) that will house deterministic logic extracted fromsrc/in later issues. This issue is packaging-only — no logic moves yet. Mirror the existingpackages/gittensory-mcp/conventions exactly: itspackage.jsonshape (license,repository.directory,publishConfig.access: public,engines.node >=22.0.0), itstsconfigapproach, and itsbuildscript pattern (node --checkper emitted file, extended here to a realtscbuild since this package is pure TS logic, not a JS CLI).Deliverables
packages/gittensory-engine/package.json— name@jsonbored/gittensory-engine, version0.1.0,AGPL-3.0-onlylicense,type: module,repository.directory: packages/gittensory-engine,fileslist scoped todist+CHANGELOG.md(nosrc).packages/gittensory-engine/tsconfig.jsonextending the repo's compiler options (strict,noUncheckedIndexedAccess,exactOptionalPropertyTypes— match roottsconfig.json) with its ownoutDir: dist.packages/gittensory-engine/src/index.tsplaceholder barrel export (empty re-export block with a comment marking it as the extraction target for later issues).buildscript (tsc -p tsconfig.json) and confirmnpm run build --workspace @jsonbored/gittensory-enginesucceeds against the placeholder.package.jsonalready globspackages/*via itsworkspacesfield — verifynpm cipicks up the new package with no additional wiring, and note that in a comment/README.packages/gittensory-engine/README.mdstub explaining the package's purpose (shared deterministic logic for both the review-stack backend andgittensory-miner) and that it is versioned independently.References
packages/gittensory-mcp/package.json— the packaging convention to mirror (name, bin,files,engines).packages/gittensory-mcp/bin/gittensory-mcp.js— sibling package's entry-point style (for later CLI issues, not this one).package.jsonworkspaces: ["apps/*", "packages/*"]— confirms the new package is auto-discovered.tsconfig.json— the compiler options to extend.packages/gittensory-engine/(this issue creates it).