| name | eserstack-monorepo |
| description | Monorepo structure, package conventions, version synchronization, and publishing workflow. Use when adding packages, modifying project structure, or managing versions. |
eserstack Monorepo
Multi-language monorepo: Deno/TypeScript packages (JSR/npm) + Go services.
Quick Start
- Each package:
pkg/@eserstack/<name>/ with deno.json, mod.ts, mod.test.ts
- Unified version — use
deno task cli codebase versions <patch|minor|major>
- JSR primary (
deno publish), npm secondary (only @eserstack/cli)
- Run
deno task validate to check entire monorepo
Key Principles
- Entry point:
mod.ts (or main.ts for CLIs)
- Tests:
*.test.ts co-located with source, benchmarks: *.bench.ts
- File naming: kebab-case enforced by pre-commit hook
- License header required on all
.ts files
- Explicit
exports and publish.include in each deno.json
- Never manually edit version fields — always use the version-bump script
@eserstack/standards is the foundation — change carefully
Go Services
Go code lives in apps/ajan/ with independent git-tag versioning.
- Run
make go-ok for Go-only validation
- Go does NOT use the unified version-bump script
- Follow hexagonal architecture — see
go-practices skill
References
See rules.md for package conventions, adding packages, and templates.